diff --git a/source/ubl-settings-keyboard.c b/source/ubl-settings-keyboard.c index c30193a..e32809d 100644 --- a/source/ubl-settings-keyboard.c +++ b/source/ubl-settings-keyboard.c @@ -112,51 +112,59 @@ gboolean yon_interface_update(main_window *widgets){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); GtkTreeIter iter; gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),DEFAULT_LABEL); - char *name = yon_config_get_by_key("XkbModel"); - char *id; - if (name) { - int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->modelsList),&iter); - for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->modelsList),&iter)){ - gtk_tree_model_get(GTK_TREE_MODEL(widgets->modelsList),&iter,0,&id,-1); - if (!strcmp(name,id)){ - gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ModelCombo),&iter); - break; + { + char *name = yon_config_get_by_key(model_parameter); + char *id; + if (name) { + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->modelsList),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->modelsList),&iter)){ + gtk_tree_model_get(GTK_TREE_MODEL(widgets->modelsList),&iter,1,&id,-1); + if (!strcmp(name,id)){ + gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ModelCombo),&iter); + break; + } } - } - } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0); - free(name); - name = yon_config_get_by_key("XkbOptions"); - if (name) { - char *id, *rname; - gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),name); - int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.options_list),&iter); - for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){ - gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1); - if (!strcmp(id,name)) gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname); - } + } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0); + free(name); } - free(name); - name = yon_config_get_by_key("NUMLOCK"); - if (name) { - if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1); - else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),2); + { + char *name = yon_config_get_by_key(options_parameter); + if (name) { + char *id, *rname; + gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),name); + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.options_list),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){ + gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1); + if (!strcmp(id,name)){ + gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname); + break; + } + } + } + free(name); } - else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); - free(name); - if (main_config.layouts_list){ - int size=0; - name = yon_config_get_by_key("XkbLayout"); - config_str layouts = yon_char_parse(name,&size,","); - GtkTreeIter iter; - char *rid,*rname; - gtk_list_store_clear(widgets->layoutsList); - for (int i=0;ilayoutsList,&iter); - gtk_list_store_set(widgets->layoutsList,&iter,0,rname,1,rid,2,0,-1); + { + char *name = yon_config_get_by_key(num_lock_boot_parameter); + if (name) { + if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1); + else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),2); + } + else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); + free(name); + if (main_config.layouts_list){ + int size=0; + name = yon_config_get_by_key(keyboard_layout_parameter); + config_str layouts = yon_char_parse(name,&size,","); + GtkTreeIter iter; + char *rid,*rname; + gtk_list_store_clear(widgets->layoutsList); + for (int i=0;ilayoutsList,&iter); + gtk_list_store_set(widgets->layoutsList,&iter,0,rname,1,rid,2,0,-1); + } } } } diff --git a/source/ubl-settings-keyboard.h b/source/ubl-settings-keyboard.h index 17eab8b..eebd980 100644 --- a/source/ubl-settings-keyboard.h +++ b/source/ubl-settings-keyboard.h @@ -35,11 +35,11 @@ #define options_parameter "XKBOPTIONS" #define options_parameter_command "ubconfig --source global get keyboard XKBOPTIONS" #define num_lock_boot_parameter "NUMLOCK" -#define num_lock_boot_parameter_command "ubconfig --source global get config NUMLOCK" +#define num_lock_boot_parameter_command "ubconfig --source global get keyboard NUMLOCK" -#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get config NUMLOCK; ubconfig --source ",target," get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS",NULL) -#define config_get_local_command "ubconfig --source system get config NUMLOCK; ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS" -#define config_get_global_command "ubconfig --source global get config NUMLOCK; ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS" +#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK",NULL) +#define config_get_local_command "ubconfig --source system get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK" +#define config_get_global_command "ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK" #define config_get_default_command "" #define config_get_global_only_parameters ""