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
-
-
-
+
+
+ False
+ True
+ 6
+
+
+
+
False
True
7
+
+
+
+ False
+ True
+ 8
+
+
False
@@ -1802,8 +1869,4 @@
-