diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index b1c4d60..ccba768 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -466,7 +466,8 @@ gboolean yon_interface_update(main_window *widgets){ GtkTreeIter iter; gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),NULL); config_str services = yon_config_load(load_services_command,&size); - config_str users_services = yon_config_load(load_user_services_command,&size_users); + char *command = load_user_services_command; + config_str users_services = yon_config_load(command,&size_users); for (int i=0;iliststore2,&iter,5,parsed[0],6,description,7,type,8,user_service,-1); } + for (int i=0;iliststore2,&iter); + int type; + char *description = parsed[parsed_size-1]; + if (strstr(parsed[0],".socket")) + type = 2; + else type = 1; + int user_service=1; + gtk_list_store_set(widgets->liststore2,&iter,5,parsed[0],6,description,7,type,8,user_service,-1); + } + int launched_size; config_str launched_parsed = yon_config_load(load_launched_command,&launched_size); int enabled_size; @@ -656,11 +669,11 @@ void config_init(){ void on_activate(GtkTreeView *self, main_window *widgets){ if (self){}; GtkTreeIter iter; - GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2); + GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->MainTree)); char *name=NULL; char *description=NULL; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){ - gtk_tree_model_get(GTK_TREE_MODEL(widgets->liststore2),&iter,5,&name,6,&description,-1); + gtk_tree_model_get(model,&iter,5,&name,6,&description,-1); gtk_label_set_text(GTK_LABEL(widgets->ServiceLabel),name); gtk_label_set_text(GTK_LABEL(widgets->DescriptionLabel),description); menu_obj *menu=widgets->menu; diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index a8b683e..7e00a53 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -33,7 +33,7 @@ #define LocaleName "ubl-settings-services" #define load_services_command "systemctl list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' -e 's/running /running;/g' -e 's/inactive /inactive;/g'" -#define load_user_services_command yon_char_unite("su -l ",yon_ubl_root_user_get()," -c \"systemctl --user list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'\"",NULL) +#define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g'",NULL) #define load_system_services_command "systemctl --system list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'" #define load_enabled_command "systemctl list-unit-files --type=service --type=socket --no-pager --state=enabled --all |sed -e 's/ */:/g' -e 's/ *: */:/g'|cut -f1 -d:" #define load_launched_command "systemctl list-units --type=service --type=socket --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:"