Localisation. Loading and saving return (WIP); services config interactions; Fixes of tables fulling

pull/28/head
parent 87282e7e0d
commit 7f2753d726

@ -60,37 +60,211 @@ void on_config_global_save(){
} }
void on_config_autostart_clicked(){
}
void on_activate(GtkTreeView *self, main_window *widgets){ void on_activate(GtkTreeView *self, main_window *widgets){
if (self&&widgets){}; if (self&&widgets){};
} }
void on_config_autostart_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,0,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_ENABLE");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_ENABLE",name,",")){
yon_config_register("SERVICES_ENABLE",SERVICES_ENABLE_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_ENABLE",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_ENABLE");
}
}
yon_char_parsed_free(parsed,size);
}
}
void on_config_autostop_clicked(){ void on_config_autostop_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,1,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_DISABLE");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_DISABLE",name,",")){
yon_config_register("SERVICES_DISABLE",SERVICES_DISABLE_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_DISABLE",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_DISABLE");
}
}
yon_char_parsed_free(parsed,size);
}
} }
void on_config_block_clicked(){ void on_config_block_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,2,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,2,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_MASK");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_MASK",name,",")){
yon_config_register("SERVICES_MASK",SERVICES_MASK_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_MASK",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_MASK");
}
}
yon_char_parsed_free(parsed,size);
}
} }
void on_system_autostart_clicked(){ void on_system_autostart_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,3,&status,5,&service_name,-1);
gtk_list_store_set(GTK_LIST_STORE(model),&iter,3,!status,-1);
yon_launch((!status)==1 ? service_enable_command(service_name) : \
service_disable_command(service_name));
}
} }
void on_system_kill_confirmed(GtkWidget *self,char *service_name){ void on_system_kill_confirmed(GtkWidget *self,char *service_name){
if (self&&service_name){}; if (self){};
char *command = service_kill_command(service_name);
yon_launch(command);
} }
void on_system_launch_clicked(){ void on_system_launch_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,4,&status,5,&service_name,-1);
yon_launch((!status)==1 ? service_start_command(service_name) : \
service_stop_command(service_name));
int size;
config_str result = yon_config_load(service_check_active_command(service_name),&size);
yon_char_remove_last_symbol(result[0],'\n');
if (size>0){
if (!strcmp(result[0],"active")){
if (status){
dialog_confirmation_data data;
data.action_text=STOP_SERVICE_WARMING_LABEL(service_name);
data.function=(void*)(void*)on_system_kill_confirmed;
data.data=service_name;
int answer = yon_confirmation_dialog_call(self,&data);
if (answer)
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1);
} else {
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1);
}
} else {
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1);
}
}
yon_char_parsed_free(result,size);
} }
void on_system_restart_clicked(){ }
void on_system_restart_clicked(GtkWidget *self, main_window *widgets){
if (self&&widgets){};
} }
void on_source_show(){ void on_source_show(){
@ -301,9 +475,7 @@ void on_system_status_clicked(GtkWidget *self, main_window *widgets){
void on_system_filter_changed(GtkWidget *self, main_window *widgets){ void on_system_filter_changed(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -311,9 +483,7 @@ void on_system_filter_changed(GtkWidget *self, main_window *widgets){
void on_system_search(GtkWidget *self, main_window *widgets){ void on_system_search(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -321,9 +491,7 @@ void on_system_search(GtkWidget *self, main_window *widgets){
void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -331,9 +499,7 @@ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_system_unloaded_toggled(GtkWidget *self, main_window *widgets){ void on_system_unloaded_toggled(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -443,9 +609,7 @@ void on_user_status_clicked(GtkWidget *self, main_window *widgets){
void on_user_filter_changed(GtkWidget *self, main_window *widgets){ void on_user_filter_changed(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -453,9 +617,7 @@ void on_user_filter_changed(GtkWidget *self, main_window *widgets){
void on_user_search(GtkWidget *self, main_window *widgets){ void on_user_search(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -463,9 +625,7 @@ void on_user_search(GtkWidget *self, main_window *widgets){
void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -473,9 +633,7 @@ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_user_unloaded_toggled(GtkWidget *self, main_window *widgets){ void on_user_unloaded_toggled(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -524,9 +682,6 @@ void on_config_edit_clicked(GtkWidget *self, main_window *widgets){
void on_session_start_clicked(GtkWidget *self, main_window *widgets){ void on_session_start_clicked(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -534,9 +689,7 @@ void on_session_start_clicked(GtkWidget *self, main_window *widgets){
void on_session_stop_clicked(GtkWidget *self, main_window *widgets){ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
} }
@ -544,9 +697,6 @@ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){
void on_session_lock_clicked(GtkWidget *self, main_window *widgets){ void on_session_lock_clicked(GtkWidget *self, main_window *widgets){
if (self){} if (self){}
if (widgets){ if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
} }
@ -626,6 +776,11 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){
gboolean yon_interface_update(main_window *widgets){ gboolean yon_interface_update(main_window *widgets){
if (widgets){ if (widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),NULL);
int system_size; int system_size;
config_str system_services = yon_config_load(load_services_command,&system_size); config_str system_services = yon_config_load(load_services_command,&system_size);
int user_size; int user_size;
@ -642,7 +797,7 @@ gboolean yon_interface_update(main_window *widgets){
if (system_services[i][strlen(system_services[i])-1]=='\n') system_services[i][strlen(system_services[i])-1] = '\0'; if (system_services[i][strlen(system_services[i])-1]=='\n') system_services[i][strlen(system_services[i])-1] = '\0';
int size; int size;
config_str parsed = yon_char_parse(system_services[i],&size,";"); config_str parsed = yon_char_parse(system_services[i],&size,";");
if (parsed&&strstr(parsed[0],".service")){ if (parsed){
gtk_list_store_append(widgets->SystemList,&iter); gtk_list_store_append(widgets->SystemList,&iter);
gtk_list_store_set(widgets->SystemList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1); gtk_list_store_set(widgets->SystemList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1);
} }
@ -653,7 +808,7 @@ gboolean yon_interface_update(main_window *widgets){
if (user_services[i][strlen(user_services[i])-1]=='\n') user_services[i][strlen(user_services[i])-1] = '\0'; if (user_services[i][strlen(user_services[i])-1]=='\n') user_services[i][strlen(user_services[i])-1] = '\0';
int size; int size;
config_str parsed = yon_char_parse(user_services[i],&size,";"); config_str parsed = yon_char_parse(user_services[i],&size,";");
if (strstr(parsed[0],".service")){ if (parsed){
gtk_list_store_append(widgets->UserList,&iter); gtk_list_store_append(widgets->UserList,&iter);
gtk_list_store_set(widgets->UserList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1); gtk_list_store_set(widgets->UserList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1);
} }
@ -675,14 +830,16 @@ gboolean yon_interface_update(main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
int size; int size;
config_str parsed = yon_char_parse(sessions[i],&size," "); config_str parsed = yon_char_parse(sessions[i],&size," ");
if (!strcmp(parsed[1],"\001")) parsed[1]=ACTIVE_LABEL;
else parsed[1]=INACTIVE_LABEL;
if (parsed&&size>4){ if (parsed&&size>4){
gtk_list_store_append(widgets->SessionsList,&iter); gtk_list_store_append(widgets->SessionsList,&iter);
gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,atoi(parsed[1]),2,parsed[2],3,parsed[3],4,parsed[4],-1); gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,parsed[1],2,atoi(parsed[2]),3,parsed[3],4,parsed[4],-1);
} }
} }
for (size_t i=0;i<json_object_array_length(jsobject);i++){ for (size_t i=0;i<json_object_array_length(jsobject);i++){
struct json_object *item_obj = json_object_array_get_idx(jsobject, i); struct json_object *item_obj = json_object_array_get_idx(jsobject, i);
const char *unit="",*next="",*left="",*last="'",*passed="",*activates=""; const char *unit="",*next="",*left="",*last="",*passed="",*activates="";
// Получение значений по ключам // Получение значений по ключам
struct json_object *unit_obj; struct json_object *unit_obj;
if (json_object_object_get_ex(item_obj, "unit", &unit_obj)) { if (json_object_object_get_ex(item_obj, "unit", &unit_obj)) {
@ -715,18 +872,169 @@ gboolean yon_interface_update(main_window *widgets){
} }
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(widgets->TimersList,&iter); gtk_list_store_append(widgets->TimersList,&iter);
GDateTime *datetime = g_date_time_new_from_unix_local(atoi(next)); GDateTime *datetime=NULL;
next = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); if (atol(next)!=0){
datetime = g_date_time_new_from_unix_local(atol(next)/1000000);
next = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime); g_date_time_unref(datetime);
datetime = g_date_time_new_from_unix_local(atoi(left)); } else {
left = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); next="";
}
if (atol(left)!=0){
datetime = g_date_time_new_from_unix_local(atol(left)/1000000);
GDateTime *now = g_date_time_new_now_local();
left = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
gint64 left_microseconds = 0;
left_microseconds = g_date_time_difference(datetime,now);
left_microseconds/=1000000;
long days = (long)((left_microseconds/60)/60)/24;
long hours = (long)(left_microseconds/60)/60%60;
long minutes = (long)left_microseconds/60%60;
long seconds = (long)left_microseconds%60;
g_date_time_unref(datetime); g_date_time_unref(datetime);
datetime = g_date_time_new_from_unix_local(atoi(last)); left = yon_char_unite(days?yon_char_from_long(days):"",days?" ":"",days?DAYS_LABEL:"",days?" ":"",hours?yon_char_from_long(hours):"",hours?" ":"",hours?HOURS_LABEL:"",hours?" ":"",minutes?yon_char_from_long(minutes):"",minutes?" ":"",minutes?MINUTES_LABEL:"",minutes?" ":"",seconds?yon_char_from_long(seconds):"",seconds?" ":"",seconds?SECONDS_LABEL:"",NULL);
last = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); } else {
left="";
}
if (atol(last)!=0){
datetime = g_date_time_new_from_unix_local(atol(last)/1000000);
last = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime);
} else {
last="";
}
if (atol(passed)!=0){
datetime = g_date_time_new_from_unix_local(atol(passed)/1000000);
passed = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime); g_date_time_unref(datetime);
} else {
passed="";
}
gtk_list_store_set(widgets->TimersList,&iter,0,unit,1,next,2,left,3,last,4,passed,5,activates,-1); gtk_list_store_set(widgets->TimersList,&iter,0,unit,1,next,2,left,3,last,4,passed,5,activates,-1);
} }
} }
{
int parsed_size;
char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER);
config_str parsed = yon_char_parse(enabled,&parsed_size,",");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList);
int valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,0,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,0,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER);
parsed = yon_char_parse(disabled,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,1,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,1,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,2,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,2,1,-1);
}
}
}
{
int parsed_size;
char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER);
config_str parsed = yon_char_parse(enabled,&parsed_size,",");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList);
int valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,0,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,0,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER);
parsed = yon_char_parse(disabled,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,1,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,1,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,2,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,2,1,-1);
}
}
}
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),GTK_TREE_MODEL(widgets->SessionsList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList));
return 0; return 0;
} }
@ -831,10 +1139,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets, AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets,
LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets, LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets,
RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets, RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets,
STATUS_LABEL,status_icon_path,on_status_show,widgets, STATUS_LABEL,status_icon_path,on_system_info_clicked,widgets,
SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets, SHOW_LOG_LABEL,log_icon_path,on_system_log_clicked,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets, SHOW_SOURCE_LABEL,source_icon_path,on_system_edit_clicked,widgets,
PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets, PROPERTIES_LABEL,properties_icon_path,on_system_status_clicked,widgets,
NULL); NULL);
widgets->UserSearchEntry=yon_gtk_builder_get_widget(builder,"UserSearchEntry"); widgets->UserSearchEntry=yon_gtk_builder_get_widget(builder,"UserSearchEntry");
@ -860,10 +1168,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets, AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets,
LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets, LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets,
RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets, RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets,
STATUS_LABEL,status_icon_path,on_status_show,widgets, STATUS_LABEL,status_icon_path,on_user_info_clicked,widgets,
SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets, SHOW_LOG_LABEL,log_icon_path,on_user_log_clicked,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets, SHOW_SOURCE_LABEL,source_icon_path,on_user_edit_clicked,widgets,
PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets, PROPERTIES_LABEL,properties_icon_path,on_user_status_clicked,widgets,
NULL); NULL);
widgets->ConfigEditButton=yon_gtk_builder_get_widget(builder,"ConfigEditButton"); widgets->ConfigEditButton=yon_gtk_builder_get_widget(builder,"ConfigEditButton");

@ -33,11 +33,11 @@
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-services" #define LocaleName "ubl-settings-services"
#define load_services_command "systemctl list-units --type=service --type=socket --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'" #define load_services_command "systemctl list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'"
#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 --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",NULL) #define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",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_system_services_command "systemctl --system list-units --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_enabled_command "systemctl list-unit-files --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:" #define load_launched_command "systemctl list-units --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:"
#define service_start_command(target) yon_char_append("systemctl start --no-pager ",target) #define service_start_command(target) yon_char_append("systemctl start --no-pager ",target)
#define service_stop_command(target) yon_char_append("systemctl stop --no-pager ",target) #define service_stop_command(target) yon_char_append("systemctl stop --no-pager ",target)
#define service_enable_command(target) yon_char_append("systemctl enable --no-pager ",target) #define service_enable_command(target) yon_char_append("systemctl enable --no-pager ",target)
@ -74,7 +74,7 @@
#define config_get_command(target) yon_char_append("cat ",target) #define config_get_command(target) yon_char_append("cat ",target)
#define config_get_local_command "ubconfig --source system get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK" #define config_get_local_command "ubconfig --source system get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK"
#define config_get_global_command "ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK" #define config_get_global_command yon_char_new("ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK")
#define config_get_default_command "" #define config_get_default_command ""
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
@ -102,6 +102,10 @@
#define reload_systemd_user_command "systemctl --user daemon-reload" #define reload_systemd_user_command "systemctl --user daemon-reload"
#define reexec_systemd_user_command "systemctl --user daemon-reexec" #define reexec_systemd_user_command "systemctl --user daemon-reexec"
#define SERVICES_ENABLE_PARAMETER "SERVICES_ENABLE"
#define SERVICES_DISABLE_PARAMETER "SERVICES_DISABLE"
#define SERVICES_MASK_PARAMETER "SERVICES_MASK"
typedef char* string; typedef char* string;
string version_application; string version_application;
@ -262,21 +266,21 @@ gboolean on_context_menu_open(GtkWidget *self,GdkEventButton *event, main_window
GtkWidget *yon_menu_separator_create(); GtkWidget *yon_menu_separator_create();
void on_config_autostart_clicked(); void on_config_autostart_clicked(GtkWidget *self, main_window *widgets);
void on_activate(GtkTreeView *self, main_window *widgets); void on_activate(GtkTreeView *self, main_window *widgets);
void on_config_autostop_clicked(); void on_config_autostop_clicked(GtkWidget *self, main_window *widgets);
void on_config_block_clicked(); void on_config_block_clicked(GtkWidget *self, main_window *widgets);
void on_system_autostart_clicked(); void on_system_autostart_clicked(GtkWidget *self, main_window *widgets);
void on_system_kill_confirmed(GtkWidget *self,char *service_name); void on_system_kill_confirmed(GtkWidget *self,char *service_name);
void on_system_launch_clicked(); void on_system_launch_clicked(GtkWidget *self, main_window *widgets);
void on_system_restart_clicked(); void on_system_restart_clicked(GtkWidget *self, main_window *widgets);
void on_source_show(); void on_source_show();

@ -60,3 +60,57 @@
#define SWITCH_OFF_ERROR_LABEL _("Service were not stopped") #define SWITCH_OFF_ERROR_LABEL _("Service were not stopped")
#define STOP_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The stop will be forced.\nThe system may become unstable."),NULL) #define STOP_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The stop will be forced.\nThe system may become unstable."),NULL)
#define DAYS_LABEL _("Days")
#define HOURS_LABEL _("Hours")
#define MINUTES_LABEL _("Minutes")
#define SECONDS_LABEL _("Seconds")
#define ACTIVE_LABEL _("Active")
#define INACTIVE_LABEL _("Inactive")
#define SYSTEM_UNITS_LABEL _("System units")
#define USER_UNITS_LABEL _("User units")
#define CONFIG_FILES_LABEL _("Config files")
#define SESSIONS__LABEL _("Sessions")
#define TIMERS_LABEL _("Timers")
#define SYSTEM_STATUS_LABEL _("System services status")
#define USER_STATUS_LABEL _("User services status")
#define INSTALLED_UNIT_LABEL _("Installed unit files")
#define UNITS_LIST_LABEL _("Units and status list")
#define SOCKETS_LIST_LABEL _("Sockets and status list")
#define TIMERS_LIST_LABEL _("Timers and status list")
#define UNIT_LABEL _("Unit")
#define RELAUNCH_SYSTEMCTL_LABEL _("Relaunch systemctl")
#define REEXEC_SYSTEMCTL_LABEL _("Reexec systemctl")
#define SHOW_SERVICE_INFO_LABEL _("Show service information")
#define SHOW_SERVICE_LOG_LABEL _("Show service log")
#define SHOW_SERVICE_SOURCE_LABEL _("Show service source file")
#define SHOW_SERVICE_PROPERTIES_LABEL _("Show service properties")
#define SHOW_LABEL _("Show...")
#define SHOW_INACTIVE_LABEL _("Show inactive")
#define SHOW_UNLOADED_LABEL _("Show unloaded")
#define FILE_LABEL _("File")
#define CHANGE_DATE_LABEL _("Change date")
#define DESCRIPTION_TAB_LABEL _("Description")
#define EDIT_LABEL _("Edit")
#define SESSION_ID_LABEL _("Session ID")
#define USER_ID_LABEL _("User ID")
#define USER_NAME_LABEL _("User name")
#define SEAT_ID_LABEL _("Seat ID")
#define SESSION_START_LABEL _("Start session")
#define SESSION_END_LABEL _("Stop session")
#define SESSION_LOCK_LABEL _("Lock session")
#define TIMER_LABEL _("Timer")
#define NEXT_LABEL _("Next")
#define LEFT_LABEL _("Left")
#define LAST_LABEL _("Last")
#define PASSED_LABEL _("Passed")
#define ACTIVATES_LABEL _("Activates")

@ -549,6 +549,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property> <property name="title" translatable="yes">Autostart</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -562,6 +563,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property> <property name="title" translatable="yes">Autostop</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -575,6 +577,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property> <property name="title" translatable="yes">Block</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -588,6 +591,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property> <property name="title" translatable="yes">Autostart</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -601,6 +605,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property> <property name="title" translatable="yes">Launched</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -614,7 +619,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="fixed-width">10</property> <property name="fixed-width">10</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property> <property name="title" translatable="yes">Unit</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -627,6 +632,7 @@
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="sizing">autosize</property> <property name="sizing">autosize</property>
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property> <property name="title" translatable="yes"> </property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>
@ -1050,6 +1056,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property> <property name="title" translatable="yes">Autostart</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -1063,6 +1070,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property> <property name="title" translatable="yes">Autostop</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -1076,6 +1084,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property> <property name="title" translatable="yes">Block</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -1089,6 +1098,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property> <property name="title" translatable="yes">Autostart</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -1102,6 +1112,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property> <property name="title" translatable="yes">Launched</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
@ -1115,7 +1126,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="fixed-width">10</property> <property name="fixed-width">10</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property> <property name="title" translatable="yes">Unit</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1128,6 +1139,7 @@
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="sizing">autosize</property> <property name="sizing">autosize</property>
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property> <property name="title" translatable="yes"> </property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>
@ -1331,7 +1343,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">File</property> <property name="title" translatable="yes">File</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1345,7 +1357,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Change date</property> <property name="title" translatable="yes">Change date</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1357,7 +1369,7 @@
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Description</property> <property name="title" translatable="yes">Description</property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>
@ -1490,7 +1502,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Session ID</property> <property name="title" translatable="yes">Session ID</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1504,7 +1516,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Status</property> <property name="title" translatable="yes">Status</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1518,7 +1530,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">User ID</property> <property name="title" translatable="yes">User ID</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1532,7 +1544,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">User name</property> <property name="title" translatable="yes">User name</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1544,7 +1556,7 @@
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Seat ID</property> <property name="title" translatable="yes">Seat ID</property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>
@ -1616,7 +1628,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Timer</property> <property name="title" translatable="yes">Timer</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1630,7 +1642,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Next</property> <property name="title" translatable="yes">Next</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1644,7 +1656,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Previous</property> <property name="title" translatable="yes">Previous</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1658,7 +1670,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Last</property> <property name="title" translatable="yes">Last</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1672,7 +1684,7 @@
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Passed</property> <property name="title" translatable="yes">Passed</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1684,7 +1696,7 @@
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="min-width">10</property> <property name="min-width">20</property>
<property name="title" translatable="yes">Activates</property> <property name="title" translatable="yes">Activates</property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>

@ -18,199 +18,367 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1 #: source/ubl-strings.h:1
msgid "Version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "ubl-settings-services version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr ""
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr ""
#: source/ubl-strings.h:2
msgid "Options:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr ""
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr ""
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr ""
#: source/ubl-strings.h:4
msgid "Services and processes systemd" msgid "Services and processes systemd"
msgstr "" msgstr ""
#: source/ubl-strings.h:5 #: source/ubl-strings.h:2
msgid "System services and processes configuration" msgid "System services and processes configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:6 #: source/ubl-strings.h:3
msgid "Services and processes - service information" msgid "Services and processes - service information"
msgstr "" msgstr ""
#: source/ubl-strings.h:8 source/ubl-strings.h:40 #: source/ubl-strings.h:5 source/ubl-strings.h:37
msgid "Configure in configuration" msgid "Configure in configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:9 source/ubl-strings.h:44 #: source/ubl-strings.h:6 source/ubl-strings.h:41
msgid "Autostart" msgid "Autostart"
msgstr "" msgstr ""
#: source/ubl-strings.h:10 source/ubl-strings.h:45 #: source/ubl-strings.h:7 source/ubl-strings.h:42
msgid "Autostop" msgid "Autostop"
msgstr "" msgstr ""
#: source/ubl-strings.h:11 source/ubl-strings.h:46 #: source/ubl-strings.h:8 source/ubl-strings.h:43
msgid "Block" msgid "Block"
msgstr "" msgstr ""
#: source/ubl-strings.h:12 source/ubl-strings.h:41 #: source/ubl-strings.h:9 source/ubl-strings.h:38
msgid "Configure in system" msgid "Configure in system"
msgstr "" msgstr ""
#: source/ubl-strings.h:13 source/ubl-strings.h:47 #: source/ubl-strings.h:10 source/ubl-strings.h:44
msgid "Launched" msgid "Launched"
msgstr "" msgstr ""
#: source/ubl-strings.h:14 #: source/ubl-strings.h:11
msgid "Reload" msgid "Reload"
msgstr "" msgstr ""
#: source/ubl-strings.h:15 #: source/ubl-strings.h:12
msgid "Show status" msgid "Show status"
msgstr "" msgstr ""
#: source/ubl-strings.h:16 #: source/ubl-strings.h:13
msgid "Update" msgid "Update"
msgstr "" msgstr ""
#: source/ubl-strings.h:18 #: source/ubl-strings.h:15
msgid "All services" msgid "All services"
msgstr "" msgstr ""
#: source/ubl-strings.h:19 #: source/ubl-strings.h:16
msgid "System services only" msgid "System services only"
msgstr "" msgstr ""
#: source/ubl-strings.h:20 #: source/ubl-strings.h:17
msgid "User services only" msgid "User services only"
msgstr "" msgstr ""
#: source/ubl-strings.h:22 #: source/ubl-strings.h:19
msgid "All" msgid "All"
msgstr "" msgstr ""
#: source/ubl-strings.h:23 #: source/ubl-strings.h:20
msgid "Services" msgid "Services"
msgstr "" msgstr ""
#: source/ubl-strings.h:24 #: source/ubl-strings.h:21
msgid "Sockets" msgid "Sockets"
msgstr "" msgstr ""
#: source/ubl-strings.h:25 #: source/ubl-strings.h:22
msgid "Autolaunch in configuration" msgid "Autolaunch in configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:26 #: source/ubl-strings.h:23
msgid "Stopped in configuration" msgid "Stopped in configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:27 #: source/ubl-strings.h:24
msgid "Blocked in configuration" msgid "Blocked in configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:29 #: source/ubl-strings.h:26
msgid "Toggle autostart at configuration" msgid "Toggle autostart at configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:30 #: source/ubl-strings.h:27
msgid "Toggle autostop at configuration" msgid "Toggle autostop at configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:31 #: source/ubl-strings.h:28
msgid "Toggle service blocking at configuration" msgid "Toggle service blocking at configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:32 #: source/ubl-strings.h:29
msgid "Toggle autostart at system" msgid "Toggle autostart at system"
msgstr "" msgstr ""
#: source/ubl-strings.h:33 #: source/ubl-strings.h:30
msgid "Launch/Stop service" msgid "Launch/Stop service"
msgstr "" msgstr ""
#: source/ubl-strings.h:34 #: source/ubl-strings.h:31
msgid "Check service status" msgid "Check service status"
msgstr "" msgstr ""
#: source/ubl-strings.h:35 #: source/ubl-strings.h:32
msgid "Check service log" msgid "Check service log"
msgstr "" msgstr ""
#: source/ubl-strings.h:37 #: source/ubl-strings.h:34
msgid "Service:" msgid "Service:"
msgstr "" msgstr ""
#: source/ubl-strings.h:38 #: source/ubl-strings.h:35
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: source/ubl-strings.h:42 #: source/ubl-strings.h:39
msgid "Service" msgid "Service"
msgstr "" msgstr ""
#: source/ubl-strings.h:48 #: source/ubl-strings.h:45
msgid "Service list is loading" msgid "Service list is loading"
msgstr "" msgstr ""
#: source/ubl-strings.h:49 #: source/ubl-strings.h:46
msgid "Status" msgid "Status"
msgstr "" msgstr ""
#: source/ubl-strings.h:47
msgid "Restart with new configuration"
msgstr ""
#: source/ubl-strings.h:48
msgid "Show log"
msgstr ""
#: source/ubl-strings.h:49
msgid "Show source"
msgstr ""
#: source/ubl-strings.h:50
msgid "Properties"
msgstr ""
#: source/ubl-strings.h:51 #: source/ubl-strings.h:51
msgid "Service were not stopped" msgid "Activate session"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:52
msgid "End session"
msgstr ""
#: source/ubl-strings.h:53
msgid "Block session"
msgstr ""
#: source/ubl-strings.h:55
msgid "Service source were not loaded"
msgstr ""
#: source/ubl-strings.h:57
msgid "Saving..."
msgstr ""
#: source/ubl-strings.h:58
msgid "Saved"
msgstr ""
#: source/ubl-strings.h:59
msgid "Error has occured"
msgstr ""
#: source/ubl-strings.h:61
msgid "Service were not stopped"
msgstr ""
#: source/ubl-strings.h:62
msgid "Are you sure want to stop " msgid "Are you sure want to stop "
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:62
msgid "" msgid ""
"The stop will be forced.\n" "The stop will be forced.\n"
"The system may become unstable." "The system may become unstable."
msgstr "" msgstr ""
#: source/ubl-strings.h:63
msgid "Days"
msgstr ""
#: source/ubl-strings.h:64
msgid "Hours"
msgstr ""
#: source/ubl-strings.h:65
msgid "Minutes"
msgstr ""
#: source/ubl-strings.h:66
msgid "Seconds"
msgstr ""
#: source/ubl-strings.h:68
msgid "Active"
msgstr ""
#: source/ubl-strings.h:69
msgid "Inactive"
msgstr ""
#: source/ubl-strings.h:71
msgid "System units"
msgstr ""
#: source/ubl-strings.h:72
msgid "User units"
msgstr ""
#: source/ubl-strings.h:73
msgid "Config files"
msgstr ""
#: source/ubl-strings.h:74
msgid "Sessions"
msgstr ""
#: source/ubl-strings.h:75
msgid "Timers"
msgstr ""
#: source/ubl-strings.h:77
msgid "System services status"
msgstr ""
#: source/ubl-strings.h:78
msgid "User services status"
msgstr ""
#: source/ubl-strings.h:79
msgid "Installed unit files"
msgstr ""
#: source/ubl-strings.h:80
msgid "Units and status list"
msgstr ""
#: source/ubl-strings.h:81
msgid "Sockets and status list"
msgstr ""
#: source/ubl-strings.h:82
msgid "Timers and status list"
msgstr ""
#: source/ubl-strings.h:84
msgid "Unit"
msgstr ""
#: source/ubl-strings.h:86
msgid "Relaunch systemctl"
msgstr ""
#: source/ubl-strings.h:87
msgid "Reexec systemctl"
msgstr ""
#: source/ubl-strings.h:88
msgid "Show service information"
msgstr ""
#: source/ubl-strings.h:89
msgid "Show service log"
msgstr ""
#: source/ubl-strings.h:90
msgid "Show service source file"
msgstr ""
#: source/ubl-strings.h:91
msgid "Show service properties"
msgstr ""
#: source/ubl-strings.h:92
msgid "Show..."
msgstr ""
#: source/ubl-strings.h:94
msgid "Show inactive"
msgstr ""
#: source/ubl-strings.h:95
msgid "Show unloaded"
msgstr ""
#: source/ubl-strings.h:97
msgid "File"
msgstr ""
#: source/ubl-strings.h:98
msgid "Change date"
msgstr ""
#: source/ubl-strings.h:99
msgid "Description"
msgstr ""
#: source/ubl-strings.h:100
msgid "Edit"
msgstr ""
#: source/ubl-strings.h:102
msgid "Session ID"
msgstr ""
#: source/ubl-strings.h:103
msgid "User ID"
msgstr ""
#: source/ubl-strings.h:104
msgid "User name"
msgstr ""
#: source/ubl-strings.h:105
msgid "Seat ID"
msgstr ""
#: source/ubl-strings.h:107
msgid "Start session"
msgstr ""
#: source/ubl-strings.h:108
msgid "Stop session"
msgstr ""
#: source/ubl-strings.h:109
msgid "Lock session"
msgstr ""
#: source/ubl-strings.h:111
msgid "Timer"
msgstr ""
#: source/ubl-strings.h:112
msgid "Next"
msgstr ""
#: source/ubl-strings.h:113
msgid "Left"
msgstr ""
#: source/ubl-strings.h:114
msgid "Last"
msgstr ""
#: source/ubl-strings.h:115
msgid "Passed"
msgstr ""
#: source/ubl-strings.h:116
msgid "Activates"
msgstr ""

@ -18,201 +18,370 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1 #: source/ubl-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-strings.h:2
msgid "ubl-settings-services version:"
msgstr "Версия ubl-settings-services: "
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-strings.h:2
msgid "Options:"
msgstr "Аргументы:"
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr "Сбросить настройки утилиты"
#: source/ubl-strings.h:4
msgid "Services and processes systemd" msgid "Services and processes systemd"
msgstr "Сервисы и процессы systemd" msgstr "Сервисы и процессы systemd"
#: source/ubl-strings.h:5 #: source/ubl-strings.h:2
msgid "System services and processes configuration" msgid "System services and processes configuration"
msgstr "Настройка работы служб и процессов системы" msgstr "Настройка работы служб и процессов системы"
#: source/ubl-strings.h:6 #: source/ubl-strings.h:3
msgid "Services and processes - service information" msgid "Services and processes - service information"
msgstr "Сервисы и процессы - статус" msgstr "Сервисы и процессы - статус"
#: source/ubl-strings.h:8 source/ubl-strings.h:40 #: source/ubl-strings.h:5 source/ubl-strings.h:37
msgid "Configure in configuration" msgid "Configure in configuration"
msgstr "Настройка в конфигурации" msgstr "Настройка в конфигурации"
#: source/ubl-strings.h:9 source/ubl-strings.h:44 #: source/ubl-strings.h:6 source/ubl-strings.h:41
msgid "Autostart" msgid "Autostart"
msgstr "Автостарт" msgstr "Автостарт"
#: source/ubl-strings.h:10 source/ubl-strings.h:45 #: source/ubl-strings.h:7 source/ubl-strings.h:42
msgid "Autostop" msgid "Autostop"
msgstr "Автостоп" msgstr "Автостоп"
#: source/ubl-strings.h:11 source/ubl-strings.h:46 #: source/ubl-strings.h:8 source/ubl-strings.h:43
msgid "Block" msgid "Block"
msgstr "Блокировать" msgstr "Блокировать"
#: source/ubl-strings.h:12 source/ubl-strings.h:41 #: source/ubl-strings.h:9 source/ubl-strings.h:38
msgid "Configure in system" msgid "Configure in system"
msgstr "Настройка в системе" msgstr "Настройка в системе"
#: source/ubl-strings.h:13 source/ubl-strings.h:47 #: source/ubl-strings.h:10 source/ubl-strings.h:44
msgid "Launched" msgid "Launched"
msgstr "Запущено" msgstr "Запущено"
#: source/ubl-strings.h:14 #: source/ubl-strings.h:11
msgid "Reload" msgid "Reload"
msgstr "Перезагрузить" msgstr "Перезагрузить"
#: source/ubl-strings.h:15 #: source/ubl-strings.h:12
msgid "Show status" msgid "Show status"
msgstr "Показать статус" msgstr "Показать статус"
#: source/ubl-strings.h:16 #: source/ubl-strings.h:13
msgid "Update" msgid "Update"
msgstr "Обновить" msgstr "Обновить"
#: source/ubl-strings.h:18 #: source/ubl-strings.h:15
msgid "All services" msgid "All services"
msgstr "Все сервисы" msgstr "Все сервисы"
#: source/ubl-strings.h:19 #: source/ubl-strings.h:16
msgid "System services only" msgid "System services only"
msgstr "Только системные сервисы" msgstr "Только системные сервисы"
#: source/ubl-strings.h:20 #: source/ubl-strings.h:17
msgid "User services only" msgid "User services only"
msgstr "Только сервисы пользователя" msgstr "Только сервисы пользователя"
#: source/ubl-strings.h:22 #: source/ubl-strings.h:19
msgid "All" msgid "All"
msgstr "Все" msgstr "Все"
#: source/ubl-strings.h:23 #: source/ubl-strings.h:20
msgid "Services" msgid "Services"
msgstr "Сервисы" msgstr "Сервисы"
#: source/ubl-strings.h:24 #: source/ubl-strings.h:21
msgid "Sockets" msgid "Sockets"
msgstr "Сокеты" msgstr "Сокеты"
#: source/ubl-strings.h:25 #: source/ubl-strings.h:22
msgid "Autolaunch in configuration" msgid "Autolaunch in configuration"
msgstr "Автозапуск в конфигурации" msgstr "Автозапуск в конфигурации"
#: source/ubl-strings.h:26 #: source/ubl-strings.h:23
msgid "Stopped in configuration" msgid "Stopped in configuration"
msgstr "Остановлено в конфигурации" msgstr "Остановлено в конфигурации"
#: source/ubl-strings.h:27 #: source/ubl-strings.h:24
msgid "Blocked in configuration" msgid "Blocked in configuration"
msgstr "Заблокированные в конфигурации" msgstr "Заблокированные в конфигурации"
#: source/ubl-strings.h:29 #: source/ubl-strings.h:26
msgid "Toggle autostart at configuration" msgid "Toggle autostart at configuration"
msgstr "Переключить автозапуск в конфигурации" msgstr "Переключить автозапуск в конфигурации"
#: source/ubl-strings.h:30 #: source/ubl-strings.h:27
msgid "Toggle autostop at configuration" msgid "Toggle autostop at configuration"
msgstr "Переключить автостоп в конфигурации" msgstr "Переключить автостоп в конфигурации"
#: source/ubl-strings.h:31 #: source/ubl-strings.h:28
msgid "Toggle service blocking at configuration" msgid "Toggle service blocking at configuration"
msgstr "Переключить блокирование в конфигурации" msgstr "Переключить блокирование в конфигурации"
#: source/ubl-strings.h:32 #: source/ubl-strings.h:29
msgid "Toggle autostart at system" msgid "Toggle autostart at system"
msgstr "Переключить автозапуск в системе" msgstr "Переключить автозапуск в системе"
#: source/ubl-strings.h:33 #: source/ubl-strings.h:30
msgid "Launch/Stop service" msgid "Launch/Stop service"
msgstr "Запустить/Остановить сервис" msgstr "Запустить/Остановить сервис"
#: source/ubl-strings.h:34 #: source/ubl-strings.h:31
msgid "Check service status" msgid "Check service status"
msgstr "Проверить статус сервиса" msgstr "Проверить статус сервиса"
#: source/ubl-strings.h:35 #: source/ubl-strings.h:32
msgid "Check service log" msgid "Check service log"
msgstr "Открыть лог сервиса" msgstr "Открыть лог сервиса"
#: source/ubl-strings.h:37 #: source/ubl-strings.h:34
msgid "Service:" msgid "Service:"
msgstr "Сервис:" msgstr "Сервис:"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:35
#, fuzzy #, fuzzy
msgid "Description:" msgid "Description:"
msgstr "Описание:" msgstr "Описание:"
#: source/ubl-strings.h:42 #: source/ubl-strings.h:39
msgid "Service" msgid "Service"
msgstr "Сервис" msgstr "Сервис"
#: source/ubl-strings.h:48 #: source/ubl-strings.h:45
msgid "Service list is loading" msgid "Service list is loading"
msgstr "Список сервисов загружается" msgstr "Список сервисов загружается"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:46
msgid "Status" msgid "Status"
msgstr "Статус" msgstr "Статус"
#: source/ubl-strings.h:47
msgid "Restart with new configuration"
msgstr "Перезагрузить с новой конфигурацией"
#: source/ubl-strings.h:48
msgid "Show log"
msgstr "Показать логи"
#: source/ubl-strings.h:49
msgid "Show source"
msgstr "Открыть конфигурационный файл"
#: source/ubl-strings.h:50
msgid "Properties"
msgstr "Свойства"
#: source/ubl-strings.h:51 #: source/ubl-strings.h:51
msgid "Activate session"
msgstr "Активировать сессию"
#: source/ubl-strings.h:52
msgid "End session"
msgstr "Завершить сессию"
#: source/ubl-strings.h:53
msgid "Block session"
msgstr "Заблокировать сессию"
#: source/ubl-strings.h:55
msgid "Service source were not loaded"
msgstr "Сервис не был загружен"
#: source/ubl-strings.h:57
msgid "Saving..."
msgstr "Сохранение..."
#: source/ubl-strings.h:58
msgid "Saved"
msgstr "Сохранено"
#: source/ubl-strings.h:59
msgid "Error has occured"
msgstr "Произошла ошибка"
#: source/ubl-strings.h:61
msgid "Service were not stopped" msgid "Service were not stopped"
msgstr "Сервис не был остановлен" msgstr "Сервис не был остановлен"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:62
msgid "Are you sure want to stop " msgid "Are you sure want to stop "
msgstr "Вы уверены что хотите остановить " msgstr "Вы уверены что хотите остановить "
#: source/ubl-strings.h:52 #: source/ubl-strings.h:62
msgid "" msgid ""
"The stop will be forced.\n" "The stop will be forced.\n"
"The system may become unstable." "The system may become unstable."
msgstr "Остановка будет произведена принудительно.\n" msgstr ""
"Остановка будет произведена принудительно.\n"
"Возможна нестабильная работа системы." "Возможна нестабильная работа системы."
#: source/ubl-strings.h:63
msgid "Days"
msgstr "Дней"
#: source/ubl-strings.h:64
msgid "Hours"
msgstr "Часов"
#: source/ubl-strings.h:65
msgid "Minutes"
msgstr "Минут"
#: source/ubl-strings.h:66
msgid "Seconds"
msgstr "Секунд"
#: source/ubl-strings.h:68
msgid "Active"
msgstr "Активна"
#: source/ubl-strings.h:69
msgid "Inactive"
msgstr "Неактивна"
#: source/ubl-strings.h:71
msgid "System units"
msgstr "Системные юниты"
#: source/ubl-strings.h:72
msgid "User units"
msgstr "Пользовательские юниты"
#: source/ubl-strings.h:73
msgid "Config files"
msgstr "Конфигурационные файлы"
#: source/ubl-strings.h:74
msgid "Sessions"
msgstr "Сессии"
#: source/ubl-strings.h:75
msgid "Timers"
msgstr "Таймеры"
#: source/ubl-strings.h:77
msgid "System services status"
msgstr "Статус сервисов системы"
#: source/ubl-strings.h:78
msgid "User services status"
msgstr "Статус сервисов пользователя"
#: source/ubl-strings.h:79
msgid "Installed unit files"
msgstr "Установленные юнит-файлы"
#: source/ubl-strings.h:80
msgid "Units and status list"
msgstr "Список юнитов и состояния"
#: source/ubl-strings.h:81
msgid "Sockets and status list"
msgstr "Список сокетов и состояния"
#: source/ubl-strings.h:82
msgid "Timers and status list"
msgstr "Список таймеров и состояния"
#: source/ubl-strings.h:84
msgid "Unit"
msgstr "Юнит"
#: source/ubl-strings.h:86
msgid "Relaunch systemctl"
msgstr "Перезагрузить systemctl"
#: source/ubl-strings.h:87
msgid "Reexec systemctl"
msgstr "Перезапустить systemctl"
#: source/ubl-strings.h:88
msgid "Show service information"
msgstr "Показать информацию о сервисе"
#: source/ubl-strings.h:89
msgid "Show service log"
msgstr "Открыть лог сервиса"
#: source/ubl-strings.h:90
msgid "Show service source file"
msgstr "Показать конфигурационный файл сервиса"
#: source/ubl-strings.h:91
msgid "Show service properties"
msgstr "Открыть свойства сервиса"
#: source/ubl-strings.h:92
msgid "Show..."
msgstr "Показать..."
#: source/ubl-strings.h:94
msgid "Show inactive"
msgstr "Показать неактивные"
#: source/ubl-strings.h:95
msgid "Show unloaded"
msgstr "Показать незагруженные"
#: source/ubl-strings.h:97
msgid "File"
msgstr "Файл"
#: source/ubl-strings.h:98
msgid "Change date"
msgstr "Изменён"
#: source/ubl-strings.h:99
msgid "Description"
msgstr "Описание"
#: source/ubl-strings.h:100
msgid "Edit"
msgstr "Редактировать"
#: source/ubl-strings.h:102
msgid "Session ID"
msgstr "ID сессии"
#: source/ubl-strings.h:103
msgid "User ID"
msgstr "ID пользователя"
#: source/ubl-strings.h:104
msgid "User name"
msgstr "Имя пользователя"
#: source/ubl-strings.h:105
msgid "Seat ID"
msgstr "Seat ID"
#: source/ubl-strings.h:107
msgid "Start session"
msgstr "Запустить сессию"
#: source/ubl-strings.h:108
msgid "Stop session"
msgstr "Остановить сессию"
#: source/ubl-strings.h:109
msgid "Lock session"
msgstr "Заблокировать сессию"
#: source/ubl-strings.h:111
msgid "Timer"
msgstr "Таймер"
#: source/ubl-strings.h:112
msgid "Next"
msgstr "Следующий"
#: source/ubl-strings.h:113
msgid "Left"
msgstr "Осталось времени"
#: source/ubl-strings.h:114
msgid "Last"
msgstr "Последний"
#: source/ubl-strings.h:115
msgid "Passed"
msgstr "Пройденный"
#: source/ubl-strings.h:116
msgid "Activates"
msgstr "Активируется"

Loading…
Cancel
Save