diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index f2db465..c5fb6b9 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -936,7 +936,7 @@ void on_units_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),INSTALLED_UNIT_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),INSTALLED_UNIT_LABEL); - window->target = installed_units_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?installed_units_states_command:user_installed_units_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -950,7 +950,7 @@ void on_units_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),UNITS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),UNITS_LIST_LABEL); - window->target = list_of_units_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_units_states_command:user_list_of_units_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -964,7 +964,7 @@ void on_sockets_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),SOCKETS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),SOCKETS_LIST_LABEL); - window->target = list_of_sockets_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_sockets_states_command:user_list_of_sockets_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -978,7 +978,7 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),TIMERS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),TIMERS_LIST_LABEL); - window->target = list_of_timers_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_timers_states_command:user_list_of_timers_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -1400,12 +1400,17 @@ void yon_main_window_complete(main_window *widgets){ widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook"); widgets->SystemServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"SystemServicesStatusMenuItem"); - widgets->UserServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserServicesStatusMenuItem"); widgets->InstalledUnitsStatusMenuItem=yon_gtk_builder_get_widget(builder,"InstalledUnitsStatusMenuItem"); widgets->UnitsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UnitsStatusListMenuItem"); widgets->SocketsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"SocketsStatusListMenuItem"); widgets->TimersStatusListMenuItem=yon_gtk_builder_get_widget(builder,"TimersStatusListMenuItem"); + widgets->UserServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserServicesStatusMenuItem"); + widgets->UserInstalledUnitsStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserInstalledUnitsStatusMenuItem"); + widgets->UserUnitsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserUnitsStatusListMenuItem"); + widgets->UserSocketsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserSocketsStatusListMenuItem"); + widgets->UserTimersStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserTimersStatusListMenuItem"); + widgets->SystemSearchEntry=yon_gtk_builder_get_widget(builder,"SystemSearchEntry"); widgets->SystemFiltersCombo=yon_gtk_builder_get_widget(builder,"SystemFiltersCombo"); widgets->SystemInactiveShowCheck=yon_gtk_builder_get_widget(builder,"SystemInactiveShowCheck"); @@ -1520,12 +1525,17 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SessionBlockButton),"clicked",G_CALLBACK(on_session_block),widgets); g_signal_connect(G_OBJECT(widgets->SystemServicesStatusMenuItem),"activate",G_CALLBACK(on_system_services_status),widgets); - g_signal_connect(G_OBJECT(widgets->UserServicesStatusMenuItem),"activate",G_CALLBACK(on_user_services_status),widgets); g_signal_connect(G_OBJECT(widgets->InstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); g_signal_connect(G_OBJECT(widgets->UnitsStatusListMenuItem),"activate",G_CALLBACK(on_units_list_status),widgets); g_signal_connect(G_OBJECT(widgets->SocketsStatusListMenuItem),"activate",G_CALLBACK(on_sockets_list_status),widgets); g_signal_connect(G_OBJECT(widgets->TimersStatusListMenuItem),"activate",G_CALLBACK(on_timers_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserServicesStatusMenuItem),"activate",G_CALLBACK(on_user_services_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserInstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserUnitsStatusListMenuItem),"activate",G_CALLBACK(on_units_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserSocketsStatusListMenuItem),"activate",G_CALLBACK(on_sockets_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserTimersStatusListMenuItem),"activate",G_CALLBACK(on_timers_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->ConfigAutostartCell),"toggled",G_CALLBACK(on_config_autostart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->ConfigAutostopCell),"toggled",G_CALLBACK(on_config_autostop_clicked),widgets); g_signal_connect(G_OBJECT(widgets->ConfigBlockCell),"toggled",G_CALLBACK(on_config_block_clicked),widgets); @@ -1533,6 +1543,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UserConfigAutostartCell),"toggled",G_CALLBACK(on_config_autostart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserConfigAutostopCell),"toggled",G_CALLBACK(on_config_autostop_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserConfigBlockCell),"toggled",G_CALLBACK(on_config_block_clicked),widgets); + if (getuid()==0){ gtk_widget_set_sensitive(widgets->UserUpdateButton,0); gtk_widget_set_sensitive(widgets->UserPrevButton,0); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 62429f2..b49aa1a 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -58,13 +58,18 @@ #define get_config_files_command "find /etc/systemd -iname *.conf -exec du -sh --time {} \\;|sed -e 's/\t/;/g'" #define system_services_status_command "systemctl status --no-pager" -#define user_services_status_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ status --no-pager",NULL) #define installed_units_states_command "systemctl list-unit-files --no-pager" #define list_of_units_states_command "systemctl list-units --all --no-pager" #define list_of_sockets_states_command "systemctl list-sockets --all --no-pager" #define list_of_timers_states_command "systemctl list-timers --all --no-pager" #define get_timers_command "systemctl list-timers --all --no-pager --plain --no-legend --output=json" +#define user_services_status_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ status --no-pager",NULL):"systemctl --user status --no-pager" +#define user_installed_units_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-unit-files --no-pager",NULL):"systemctl --user list-unit-files --no-pager" +#define user_list_of_units_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --all --no-pager",NULL):"systemctl --user list-units --all --no-pager" +#define user_list_of_sockets_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-sockets --all --no-pager",NULL):"systemctl --user list-sockets --all --no-pager" +#define user_list_of_timers_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-timers --all --no-pager",NULL):"systemctl --user list-timers --all --no-pager" + #define installed_units_command "systemctl list-unit-files --no-pager| sed -e 's/ */;/g'" #define list_of_units_command "systemctl list-units --all --no-pager| sed -e 's/ */;/g'" #define list_of_sockets_command "systemctl list-sockets --all --no-pager| sed -e 's/ */;/g'" @@ -189,11 +194,17 @@ typedef struct { GtkWidget *MainNotebook; GtkWidget *SystemServicesStatusMenuItem; - GtkWidget *UserServicesStatusMenuItem; GtkWidget *InstalledUnitsStatusMenuItem; GtkWidget *UnitsStatusListMenuItem; GtkWidget *SocketsStatusListMenuItem; GtkWidget *TimersStatusListMenuItem; + + GtkWidget *UserServicesStatusMenuItem; + GtkWidget *UserInstalledUnitsStatusMenuItem; + GtkWidget *UserUnitsStatusListMenuItem; + GtkWidget *UserSocketsStatusListMenuItem; + GtkWidget *UserTimersStatusListMenuItem; + GtkTreeModelFilter *SystemFilter; GtkTreeModelFilter *UserFilter; diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 5d0fa4e..5be103e 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -198,14 +198,6 @@ True - - - True - False - User services status - True - - True @@ -239,6 +231,45 @@ + + True + False + + + True + False + User services status + + + + + True + False + Installed unit files + + + + + True + False + Units and status list + + + + + True + False + Sockets and status list + + + + + True + False + Timers and status list + + + True False @@ -1020,12 +1051,48 @@ + + False + True + 6 + + + + + True + False + False True 7 + + + True + True + False + True + Show... + menu2 + + + True + False + com.ublinux.ubl-settings-services.menu-symbolic + + + + + + False + True + 8 + + False @@ -1802,8 +1869,4 @@ - - True - False -