From d2a468f4aeff8f14b50db51d9df72ba1515a48c4 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 10:44:47 +0600 Subject: [PATCH 1/9] Fixed kernel loading --- locale/groups-list_ru.po | 5 ++++- source/ubinstall-gtk-components.c | 16 +++++++++++++++- source/ubinstall-gtk-kernel.c | 2 +- source/ubinstall-gtk-packages.c | 6 +++--- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/locale/groups-list_ru.po b/locale/groups-list_ru.po index 6fca439..a73eab0 100644 --- a/locale/groups-list_ru.po +++ b/locale/groups-list_ru.po @@ -132,7 +132,10 @@ msgid "Chromium and some plugins" msgstr "Chromium и некоторые другие плагины" msgid "Office" -msgstr "Office" +msgstr "Офис" + +msgid "Office packet" +msgstr "Офисный пакет" msgid "Browser" msgstr "Браузер" diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 196115b..a1a3b6a 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -12,7 +12,9 @@ int yon_kernel_save(main_window *widgets){ overall_size++; kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - yon_config_append_element(packages_parameter,row->package,","); + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_append_element(packages_parameter,append_str,","); + free(append_str); active_size++; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ enabled_module = row->package; @@ -26,6 +28,18 @@ int yon_kernel_save(main_window *widgets){ yon_config_remove_by_key(KERNEL_BOOT_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter, KERNEL_BOOT_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } + return 1; } diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index 8b4e5e6..c5b7298 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -193,7 +193,7 @@ void yon_kernel_setup(main_window *widgets){ int modules_size; config_str modules_parsed = NULL; if (!yon_char_is_empty(modules)){ - modules_parsed = yon_char_parse(modules,&modules_size," "); + modules_parsed = yon_char_parse(modules,&modules_size,","); } int size; diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index ef3d1b9..bd062ea 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -94,9 +94,9 @@ void yon_packages_tab_init(main_window *widgets){ GtkTreeIter catiter; GtkTreeIter package_iter; gtk_tree_store_append(widgets->PackagesList,&catiter,NULL); - gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[3]),3,0,-1); + gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[0]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&subcategory_iter,&catiter); - gtk_tree_store_set(widgets->PackagesList,&subcategory_iter,1,parsed[1],2,_(parsed[3]),3,0,-1); + gtk_tree_store_set(widgets->PackagesList,&subcategory_iter,1,parsed[1],2,_(parsed[1]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcategory_iter); char *full_string = yon_char_unite("",parsed[2],"\n",_(parsed[3]),NULL); gtk_tree_store_set(widgets->PackagesList,&package_iter,1,parsed[2],2,full_string,3,1,-1); @@ -105,7 +105,7 @@ void yon_packages_tab_init(main_window *widgets){ GtkTreeIter package_iter; GtkTreeIter catiter; gtk_tree_store_append(widgets->PackagesList,&catiter,NULL); - gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[3]),3,0,-1); + gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[0]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&package_iter,&catiter); char *full_string = yon_char_unite("",parsed[2],"\n",_(parsed[3]),NULL); gtk_tree_store_set(widgets->PackagesList,&package_iter,0,0,1,parsed[2],2,full_string,3,1,-1); -- 2.35.1 From cb0a0358709324a47f44f6343bf74b3a829bbb94 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 11:13:10 +0600 Subject: [PATCH 2/9] Fixed both logs can be opened at once --- source/ubinstall-gtk-log.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/ubinstall-gtk-log.c b/source/ubinstall-gtk-log.c index 7fe12e9..72ba72e 100644 --- a/source/ubinstall-gtk-log.c +++ b/source/ubinstall-gtk-log.c @@ -89,7 +89,6 @@ void on_process_log_view(GtkWidget *,main_window *widgets){ g_object_set_data(G_OBJECT(window->Window),"widgets",widgets); g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),window); gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); - gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,INSTALL_LOG_LABEL,icon_path,"log_viewer"); window->command = yon_char_new(short_log_path); GFile *file = g_file_new_for_path(window->command); @@ -103,7 +102,6 @@ void on_summary_log_view(GtkWidget *,main_window *widgets){ log_window *window = yon_log_window_new(); g_object_set_data(G_OBJECT(window->Window),"widgets",widgets); g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),window); - gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,PROGRESS_LOG_LABEL,icon_path,"log_viewer"); window->command = yon_char_new(full_log_path); -- 2.35.1 From b545b9f8885f60d13b743330b21c42d73946ad54 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 11:30:14 +0600 Subject: [PATCH 3/9] Fixed kernel modules list --- source/ubinstall-gtk-kernel.c | 4 +++- ubinstall-gtk-kernel-row.glade | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index c5b7298..51cd994 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -105,12 +105,14 @@ void yon_kernel_row_setup(kernel_row *row, char *name, char *modules,char *packa description_full = yon_char_parsed_to_string(description_wrapped,size,"\n"); yon_char_parsed_free(description_wrapped,size); } + char *modules_parsed = yon_char_replace(modules," ","\n"); gtk_label_set_label(GTK_LABEL(row->NameLabel),name); - gtk_label_set_label(GTK_LABEL(row->ModulesLabel),modules); + gtk_label_set_label(GTK_LABEL(row->ModulesLabel),modules_parsed); gtk_label_set_label(GTK_LABEL(row->DescriptionLabel),description_full); yon_kernel_row_setup_tags(row,tags); free(description_full); + free(modules_parsed); } void yon_kernel_resize(main_window *widgets){ diff --git a/ubinstall-gtk-kernel-row.glade b/ubinstall-gtk-kernel-row.glade index 1d9ee69..feb2178 100644 --- a/ubinstall-gtk-kernel-row.glade +++ b/ubinstall-gtk-kernel-row.glade @@ -1,5 +1,5 @@ - + @@ -135,6 +135,7 @@ False 5 0 + 0 False -- 2.35.1 From facc544d82bd8a7c79fbe048eb0fde8cb518ae2e Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 13:56:48 +0600 Subject: [PATCH 4/9] Fixed software by groups page saving --- source/ubinstall-gtk-components.c | 31 +++++++++++++------------------ source/ubinstall-gtk-packages.c | 4 +++- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index a1a3b6a..c54406f 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -46,20 +46,20 @@ int yon_kernel_save(main_window *widgets){ int yon_kernel_addon_save(main_window *widgets){ char *parameter = config(packages_parameter); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); - char *install_modules = yon_char_new(parameter); + if (yon_char_is_empty(parameter)){ + yon_config_register(packages_parameter,packages_parameter_command,NULL); + } for(GList *iter = list;iter;iter = iter->next){ kernel_addon_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - char *temp = yon_char_append_element(install_modules,row->modules," "); - if (!yon_char_is_empty(install_modules)) free(install_modules); - install_modules = temp; + yon_config_append_element(packages_parameter,row->modules," "); } } - if (!yon_char_is_empty(install_modules)){ - yon_config_register(packages_parameter,packages_parameter_command,install_modules); - free(install_modules); - } + // if (!yon_char_is_empty(install_modules)){ + // yon_config_register(packages_parameter,packages_parameter_command,install_modules); + // free(install_modules); + // } return 1; } @@ -376,19 +376,14 @@ void yon_software_init(main_window *widgets){ int yon_pacman_software_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); - int size; - config_str parameters = NULL; + char *config_parameter = config(packages_parameter); + if (yon_char_is_empty(config_parameter)){ + yon_config_register(packages_parameter,packages_parameter_command,NULL); + } for_iter(model,&iter){ char *target; gtk_tree_model_get(model,&iter,1,&target,-1); - yon_char_parsed_add_or_create_if_exists(parameters,&size,target); - } - char *final = yon_char_parsed_to_string(parameters,size,","); - yon_char_parsed_free(parameters,size); - if (!yon_char_is_empty(final)){ - yon_config_register(packages_parameter,packages_parameter_command,final); - } else { - yon_config_remove_by_key(packages_parameter); + yon_config_append_element(packages_parameter,target,","); } return 1; } diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index bd062ea..93aaeba 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -15,7 +15,9 @@ int yon_packages_tab_save(main_window *widgets){ } else { for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1); - yon_config_append_element(packages_parameter,package,","); + if (status){ + yon_config_append_element(packages_parameter,package,","); + } } } } -- 2.35.1 From d4e1e3361bd420cbf45da6663fc500630e1f1edb Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 14:46:00 +0600 Subject: [PATCH 5/9] Fixed bootloader page saving & loading --- source/ubinstall-gtk-bootloader.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 875f4a7..6b0b209 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -33,13 +33,30 @@ int yon_bootloader_save(main_window *widgets){ int size; config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&size); for (int i=0;iBootloadUsersList); char *timeout = config(GRUB_TIMEOUT_parameter); char *os = config(GRUB_DEFAULT_parameter); char *autologin = config(AUTOLOGINUSER_parameter); @@ -471,7 +489,6 @@ void yon_bootloader_init(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL); } if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"no")||!strcmp(autologin,"disable"))){ - gtk_list_store_clear(widgets->BootloadUsersList); gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0); int admins_size; config_str admins_parsed = yon_char_parse(admins,&admins_size,","); -- 2.35.1 From 1f8b63d8803b521c8e06e39ebb25f0e6901d4156 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 15:56:04 +0600 Subject: [PATCH 6/9] Fixed parameter mid-config saving --- source/ubinstall-gtk-components.c | 48 +++++++++++++++++++-- source/ubinstall-gtk-grub.c | 24 +++++++++++ source/ubinstall-gtk-installation.c | 56 ------------------------- source/ubinstall-gtk-keyboard.c | 11 +++++ source/ubinstall-gtk-language.c | 11 +++++ source/ubinstall-gtk-network.c | 17 ++++++++ source/ubinstall-gtk-packages.c | 11 +++++ source/ubinstall-gtk-region.c | 11 +++++ source/ubinstall-gtk-startup-apps.c | 11 +++++ source/ubinstall-gtk-startup-services.c | 11 +++++ source/ubinstall-gtk-users.c | 16 +++++++ 11 files changed, 167 insertions(+), 60 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index c54406f..e7bb303 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -56,10 +56,17 @@ int yon_kernel_addon_save(main_window *widgets){ } } - // if (!yon_char_is_empty(install_modules)){ - // yon_config_register(packages_parameter,packages_parameter_command,install_modules); - // free(install_modules); - // } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter, KERNEL_BOOT_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -129,6 +136,17 @@ int yon_os_components_save(main_window *widgets){ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOTHING_CHOSEN_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE); yon_ubl_status_highlight_incorrect(widgets->OSSoftwareListBox); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -297,6 +315,17 @@ int yon_software_save(main_window *widgets){ } } g_list_free(list); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -385,6 +414,17 @@ int yon_pacman_software_save(main_window *widgets){ gtk_tree_model_get(model,&iter,1,&target,-1); yon_config_append_element(packages_parameter,target,","); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-grub.c b/source/ubinstall-gtk-grub.c index d5d1cb1..9dc05a8 100644 --- a/source/ubinstall-gtk-grub.c +++ b/source/ubinstall-gtk-grub.c @@ -20,6 +20,18 @@ int yon_grub_install_save(main_window *widgets){ yon_config_register(device_parameter,device_parameter_command,cur_device); yon_config_register(part_parameter,part_parameter_command,partition); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install"); + + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -43,5 +55,17 @@ int yon_grub_update_save(main_window *widgets){ yon_config_register(device_parameter,device_parameter_command,cur_device); yon_config_register(part_parameter,part_parameter_command,partition); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); + + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index 580d7be..3e9cae3 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -183,62 +183,6 @@ int yon_install_same_partition_save(main_window *widgets){ return 1; } -// int yon_advanced_sections_save(dictionary *dict){ -// if (!dict) return 0; -// advanced_part_widgets *first_section = yon_dictionary_get_data(dict->first,advanced_part_widgets*); -// advanced_part_widgets *last_section = NULL; -// if (dict->first->next){ -// last_section = yon_dictionary_get_data(dict->first->next,advanced_part_widgets*); -// } - -// char *part_first = first_section->part; -// char *part_last = last_section?last_section->part:NULL; -// char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL); -// yon_config_register(part_parameter,part_parameter_command,part); - -// int format_first_active = gtk_switch_get_active(GTK_SWITCH(first_section->FormatCombo)); -// int format_last_active = gtk_switch_get_active(GTK_SWITCH(last_section->FormatCombo)); -// char * format_first = format_first_active==1?"yes":format_first_active==2?"no":NULL; -// char * format_last = format_last_active==1?"yes":format_last_active==2?"no":NULL; -// char *format = yon_char_unite(format_first,part_last?",":NULL,format_last,NULL); -// yon_config_register(part_format_parameter,part_format_parameter_command,format); - -// if (!yon_char_is_empty(format)){ -// char *size_first = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(first_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->SizeCombo)))); -// char *size_last = last_section&&!strcmp(format_last,"yes")?g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(last_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->SizeCombo)))):NULL; -// char *size = yon_char_unite(size_first,size_last?",":NULL,size_last,NULL); -// yon_config_register(part_size_parameter,part_size_parameter_command,size); - -// char *part_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->PartLabelEntry)); -// char *part_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->PartLabelEntry)):NULL; -// char *part_label = yon_char_unite(part_label_first,part_label_last?",":NULL,part_label_last,NULL); -// yon_config_register(part_label_parameter,part_label_parameter_command,part_label); - -// char *fs_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->FileSystemLabelEntry)); -// char *fs_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->FileSystemLabelEntry)):NULL; -// char *fs_label = yon_char_unite(fs_label_first,fs_label_last?",":NULL,fs_label_last,NULL); -// yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,fs_label); - -// char *fs_type_first = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo)); -// char *fs_type_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(last_section->FileSystemTypeCombo)):NULL; -// char *fs_type = yon_char_unite(fs_type_first,fs_type_last?",":NULL,fs_type_last,NULL); -// yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,fs_type); - -// char *part_crypt_first = gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; -// char *part_crypt_last = last_section&&!strcmp(format_last,"yes")&>k_combo_box_get_active(GTK_COMBO_BOX(last_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; -// char *part_crypt = NULL; -// if (part_crypt_first||part_crypt_last){ -// part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL); -// } -// if (part_crypt){ -// yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt); -// } else { -// yon_config_remove_by_key(part_crypt_parameter); -// } -// } -// return 1; -// } - void yon_size_changed(GtkSpinButton *self, main_window *widgets){ int cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); GtkWidget *tree = NULL; diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index 1095337..a7e3538 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -43,6 +43,17 @@ int yon_keyboard_save(main_window *widgets){ break; } yon_config_register(num_lock_boot_parameter,num_lock_boot_parameter_command,numlock); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,xkbmodel_parameter,xkbmodel_parameter,num_lock_boot_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } on_options_save(NULL,widgets); return 1; } diff --git a/source/ubinstall-gtk-language.c b/source/ubinstall-gtk-language.c index e4013b1..29b100f 100644 --- a/source/ubinstall-gtk-language.c +++ b/source/ubinstall-gtk-language.c @@ -274,6 +274,17 @@ int yon_language_save(main_window *widgets){ yon_config_remove_by_key(lang_parameter); yon_config_remove_by_key(locale_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,lang_parameter,locale_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index 726bf95..5e743f7 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -289,6 +289,23 @@ int yon_network_save(main_window *widgets){ } } + if (!main_config.configure_mode){ + int connect_size; + + config_str connections = yon_config_get_all_by_key(NETWORK_parameter_search,&connect_size); + char *connections_string = yon_char_parsed_to_string(connections,connect_size," "); + yon_char_parsed_free(connections,connect_size); + + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,DOMAIN_parameter,DOMAIN_admanger_parameter,NTPSERVERS_parameter,hostname_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters, " ", connections_string,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index 93aaeba..9d18826 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -22,6 +22,17 @@ int yon_packages_tab_save(main_window *widgets){ } } } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index 22a3bf2..c63ffcb 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -18,6 +18,17 @@ int yon_region_save(main_window *widgets){ char *final = yon_char_unite(region,"/",zone,NULL); yon_config_register(zone_parameter,zone_parameter_command,final); free(final); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,zone_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index 3014f1e..094d63f 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -210,5 +210,16 @@ int yon_startup_app_save(main_window *widgets){ } else { yon_config_remove_by_key(AUTOEXEC_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOEXEC_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index b99a166..12af9dd 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -217,5 +217,16 @@ int yon_startup_save(main_window *widgets){ } else { yon_config_remove_by_key(SERVICES_ENABLE_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,SERVICES_ENABLE_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 681e23a..e899e3c 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -32,6 +32,22 @@ int yon_users_save(main_window *widgets){ } } + if (!main_config.configure_mode){ + int users_size; + config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); + char *parameter = yon_char_parsed_to_string(users,users_size," "); + yon_char_parsed_free(users,users_size); + + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,autologin_parameter,root_password_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters," ",parameter,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } yon_debug_output("%s\n",yon_config_get_all_info()); return 1; } -- 2.35.1 From a9ad0ec8d42daffe13c921e372caa775dbac3b6a Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 16:21:13 +0600 Subject: [PATCH 7/9] Fixed startup applications page loading --- source/ubinstall-gtk-startup-apps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index 094d63f..b52d43b 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -55,7 +55,7 @@ void yon_startup_apps_setup(main_window *widgets){ } } - char *startup = config(SERVICES_ENABLE_parameter); + char *startup = config(AUTOEXEC_parameter); if (!yon_char_is_empty(startup)){ if (!strcmp(startup,"auto")){ for_iter(GTK_TREE_MODEL(widgets->StartupAppsList),&iter){ -- 2.35.1 From f0d37f8237114f98b61ca9057200c3a2c21f9b2e Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 17:26:38 +0600 Subject: [PATCH 8/9] Modules page size label added --- source/ubinstall-gtk-components.c | 52 +++++++++++++++++++++-------- source/ubinstall-gtk-config-hub.c | 2 +- source/ubinstall-gtk.c | 1 + source/ubinstall-gtk.h | 4 ++- source/ubl-strings.h | 1 + ubinstall-gtk.glade | 54 +++++++++++++++++++++++++++++++ 6 files changed, 99 insertions(+), 15 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index e7bb303..30a254b 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -329,10 +329,47 @@ int yon_software_save(main_window *widgets){ return 1; } + +int yon_software_check_packages_size(GtkWidget *, main_window *widgets){ + long pacman_size = 0; + { + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList)); + GList *listiter; + for (listiter=list;listiter;listiter=listiter->next){ + os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row"); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ + long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name); + pacman_size += cur_size; + } + } + } + { + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); + for_iter(model, &iter){ + char *name; + gtk_tree_model_get(model,&iter,1,&name,-1); + long size = yon_packages_get_installed_size(YON_PACKAGES_ALL,name); + pacman_size+=size; + } + char *overall_str = NULL; + if (pacman_size){ + overall_str = yon_size_long_convert_automatic_to_string(pacman_size); + } else { + overall_str = yon_char_unite("0 ",yon_size_get_name_from_letter('K'),NULL); + } + gtk_label_set_text(GTK_LABEL(widgets->AdditionalComponentsOverallSizeLabel),overall_str); + if (!yon_char_is_empty(overall_str)) free(overall_str); + } + + return 1; +} + gboolean yon_software_insert(struct row_data *row_input){ os_row *row = yon_os_row_new(); main_window *widgets = row_input->widgets; + g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(yon_software_check_packages_size),widgets); gtk_list_box_insert(GTK_LIST_BOX(widgets->AdditionalComponentsList),row->row,-1); yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description),NULL,row_input->size); @@ -384,25 +421,14 @@ void yon_software_init(main_window *widgets){ row->widgets=widgets; g_idle_add((GSourceFunc)yon_software_insert,row); } - // GList *languages = yon_packages_search_all("ubm-.*"); - // for (iter=languages;iter;iter=iter->next){ - // char *name = (char*)iter->data; - // yon_packages_info *info_struct = yon_package(YON_PACKAGES_ALL,name); - // struct row_data *row = malloc(sizeof(struct row_data)); - // row->version = info_struct->version; - // row->name = info_struct->package_name; - // row->tags = info_struct->groups; - // row->description = info_struct->description; - // row->widgets=widgets; - // g_idle_add((GSourceFunc)yon_software_insert,row); - // yon_packages_info_struct_free(info_struct); - // } g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); yon_char_parsed_free(base,base_size); + yon_software_check_packages_size(NULL,widgets); return ; } int yon_pacman_software_save(main_window *widgets){ + if (!yon_installation_check_packages_size(widgets)) return 0; GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); char *config_parameter = config(packages_parameter); diff --git a/source/ubinstall-gtk-config-hub.c b/source/ubinstall-gtk-config-hub.c index 6245f4d..f75f7b5 100644 --- a/source/ubinstall-gtk-config-hub.c +++ b/source/ubinstall-gtk-config-hub.c @@ -273,6 +273,7 @@ void yon_flow_box_clear(GtkFlowBox *target){ void yon_configuration_hub_init(main_window *widgets){ gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ConfigHubRebootCombo)); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ConfigHubRebootCombo),NULL,DEFAULT_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ConfigHubRebootCombo),"close",CLOSE_INSTALLER_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ConfigHubRebootCombo),"reboot",REBOOT_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ConfigHubRebootCombo),"shutdown",SHUTDOWN_LABEL); char *finish_string = config(finish_parameter); @@ -282,7 +283,6 @@ void yon_configuration_hub_init(main_window *widgets){ } else { gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo),0); } - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo),0); yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubPersonalListBox)); yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubSystemListBox)); yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubPackagesListBox)); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 593c093..217e898 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -513,6 +513,7 @@ void yon_main_window_create(main_window *widgets){ widgets->KeyboardNumLockCombo = yon_gtk_builder_get_widget(builder,"KeyboardNumLockCombo"); widgets->AdditionalComponentsList = yon_gtk_builder_get_widget(builder,"AdditionalComponentsList"); + widgets->AdditionalComponentsOverallSizeLabel = yon_gtk_builder_get_widget(builder,"AdditionalComponentsOverallSizeLabel"); widgets->InstallationProgress = yon_gtk_builder_get_widget(builder,"InstallationProgress"); widgets->InstallationLabel = yon_gtk_builder_get_widget(builder,"InstallationLabel"); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 66eecc6..7f72aaf 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -616,6 +616,7 @@ typedef struct GtkWidget *DocumentationMenuItem; GtkWidget *AdditionalComponentsList; + GtkWidget *AdditionalComponentsOverallSizeLabel; GtkWidget *GrubInstallRadio; GtkWidget *GrubUpdateRadio; @@ -1556,4 +1557,5 @@ void yon_advanced_part_save(main_window *widgets); void yon_advanced_part_clean_config(); void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *data); void yon_advanced_part_save_part(advanced_part_data *data); -void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets); \ No newline at end of file +void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets); +int yon_software_check_packages_size(GtkWidget *, main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 881f0f1..8d41492 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -286,6 +286,7 @@ NULL) #define LOAD_GLOBAL_LABEL yon_char_get_localised_from_lib("Load global configuration") #define LOAD_LABEL yon_char_get_localised_from_lib("Load") +#define CLOSE_INSTALLER_LABEL _("Close installer") #define REBOOT_LABEL _("Reboot") #define SHUTDOWN_LABEL _("Shudown") #define FINISH_ACTION_LABEL _("After successful installation:") diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index ae9113c..c4c84be 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -3290,6 +3290,60 @@ Select a different installation source. 1 + + + True + False + 5 + + + True + False + 5 + + + True + False + + + False + True + end + 0 + + + + + True + False + Overall size: + 1 + + + + + + False + True + end + 1 + + + + + False + True + end + 1 + + + + + False + True + 2 + + 9 -- 2.35.1 From 33d426a3d84d5372c29f887e23bd2a45ff05c2ab Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 18:08:10 +0600 Subject: [PATCH 9/9] Test fix for configuration resetting after successfull installation --- source/ubinstall-gtk-saving.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c index 865eaca..bd462c0 100644 --- a/source/ubinstall-gtk-saving.c +++ b/source/ubinstall-gtk-saving.c @@ -433,18 +433,14 @@ int yon_config_save(main_window *widgets){ void yon_config_restore(main_window *){ yon_load_proceed(main_config.load_mode); - // switch(main_config.load_mode){ - // case YON_CONFIG_GLOBAL: - // on_config_global_load(NULL,widgets); - // break; - // case YON_CONFIG_LOCAL: - // on_config_local_load(NULL,widgets); - // break; - // case YON_CONFIG_CUSTOM: - // on_config_custom_load_last(NULL,widgets); - - // } - // on_config_global_load(NULL,widgets); yon_launch("ubconfig --source system remove [autoinstall]"); - // yon_config_save_simple(YON_CONFIG_LOCAL,"system"); + yon_config_to_default(); + int size; + config_str parameters = yon_config_get_save_parameters(&size); + char *command_params = yon_char_parsed_to_string(parameters,size, " "); + char *command = ubconfig_set_command_full("system","",command_params); + yon_debug_output("%s\n",command); + yon_launch(command); + yon_char_parsed_free(parameters,size); + free(command); } \ No newline at end of file -- 2.35.1