diff --git a/gresource.xml b/gresource.xml
index 3449e5e..05fab96 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -6,6 +6,7 @@
ubl-settings-kernel-install.glade
ubl-settings-kernel-table-row.glade
ubl-settings-kernel-additions-table-row.glade
+ ubl-settings-kernel-dialog.glade
ubl-settings-kernel.css
diff --git a/kernel-list-addon.csv b/kernel-list-addon.csv
index a4b3bf7..679fb38 100644
--- a/kernel-list-addon.csv
+++ b/kernel-list-addon.csv
@@ -1,5 +1,5 @@
NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION
-Linux 5.15 headers;ubm-002-linux515-headers;linux515-headers;The Linux kernel headers v5.15
+Linux 5.15 headers;ubm-001-linux515-headers;linux515-headers;The Linux kernel headers v5.15
Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15
Linux 5.15 DKMS modules;ubm-linux515-dkms;linux515-dkms;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 450e841..e90e6e4 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -36,6 +36,7 @@ set(DEPENDFILES
../ubl-settings-kernel-install.glade
../ubl-settings-kernel-table-row.glade
../ubl-settings-kernel-additions-table-row.glade
+ ../ubl-settings-kernel-dialog.glade
../gresource.xml
../kernel-list.csv
../kernel-list-addon.csv
diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c
index b8b0071..fb69000 100644
--- a/source/ubl-settings-kernel.c
+++ b/source/ubl-settings-kernel.c
@@ -193,58 +193,180 @@ gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets){
yon_interface_update(widgets);
return G_SOURCE_REMOVE;
}
+gboolean yon_terminal_get_progress(main_window *widgets){
+ char *text = vte_terminal_get_text_format(VTE_TERMINAL(widgets->InstallTerminal),VTE_FORMAT_TEXT);
+ GRegex *regex = g_regex_new("\\d?\\d\\d%",0,0,NULL);
+
+ GMatchInfo *match = NULL;
+ g_regex_match(regex,text,0,&match);
+ g_regex_unref(regex);
+ char *target = g_match_info_fetch(match,0);
+ g_match_info_unref(match);
+
+ if (!yon_char_is_empty(target)) {
+ target[strlen(target)-1]='\0';
+ double percentage = atof(target);
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),percentage/100);
+ }
+
+ if (!gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->MainRevealer))){
+ return G_SOURCE_REMOVE;
+ }
+ return G_SOURCE_CONTINUE;
+}
void *yon_command_execute_async(char *command,main_window *widgets){
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0);
+ vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1);
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->MainRevealer),1);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
yon_terminal_integrated_start(widgets->InstallTerminal,command);
- glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
- vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
+ glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
+ vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
+ gdk_threads_add_timeout(500,(GSourceFunc)yon_terminal_get_progress,widgets);
return NULL;
}
-void on_module_install_clicked(GtkWidget *,dictionary *dict){
+void on_install_accept(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
- char *command = install_command(tab->module);
- yon_command_execute_async(command,widgets);
- tab->module_installed=1;
+ dialog_window *window = yon_dictionary_get_data(dict->first->next->next,dialog_window*);
+ char *modules_to_install = tab->module;
+
+ GtkTreeIter iter;
+ for_iter (GTK_TREE_MODEL(window->liststore1),&iter){
+ int status;
+ char *package;
+ gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
+ if (status){
+ char *temp = yon_char_unite(modules_to_install," ", package, NULL);
+ if (strcmp(modules_to_install,tab->module)) free(modules_to_install);
+ modules_to_install = temp;
+ }
+ }
+ char *command = install_command(modules_to_install);
+ yon_command_execute_async(command,widgets);
+ tab->module_installed=1;
+ free(dict->first->next->next);
+ dict->first->next->next=NULL;
+}
+dialog_window *yon_dialog_window_new(){
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_dialog_path);
+ dialog_window *window = malloc(sizeof(dialog_window));
+ window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
+ window->TopicLabel = yon_gtk_builder_get_widget(builder,"TopicLabel");
+ window->DependencesTree = yon_gtk_builder_get_widget(builder,"DependencesTree");
+ window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
+ window->ChooseCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChooseCell"));
+ window->liststore1 = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
+ yon_cell_renderer_toggle_set_toggle(GTK_CELL_RENDERER_TOGGLE(window->ChooseCell),window->DependencesTree);
+ return window;
+}
+
+void on_module_install_clicked(GtkWidget *,dictionary *dict){
+ // main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
+ kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
+ char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
+ dialog_window *window = yon_dialog_window_new();
+ g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_install_accept),dict);
+
+ gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text);
+ gtk_widget_show(window->Window);
+ yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
+
+ int size;
+ config_str additions = yon_resource_open_file(kernels_addon_path,&size);
+ GtkTreeIter iter;
+ for (int i=0;imodule_requirements_size;i++){
+ gtk_list_store_append(window->liststore1,&iter);
+ for (int j=1;jmodule_requirements[i]))
+ gtk_list_store_set(window->liststore1,&iter,2,parsed[3],-1);
+ yon_char_parsed_free(parsed,cur_size);
+ }
+ gtk_list_store_set(window->liststore1,&iter,0,1,1,tab->module_requirements[i],-1);
+ }
+ yon_char_parsed_free(additions,size);
}
void on_package_install_clicked(GtkWidget *,dictionary *dict){
- main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
+ // main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
- char *command = install_command(tab->package);
- yon_command_execute_async(command,widgets);
- tab->package_installed=1;
+ char *action_text = PACKAGE_INSTALL_CONFIRMATION_LABEL(tab->name);
+ dialog_window *window = yon_dialog_window_new();
+ g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_install_accept),dict);
+
+ gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text);
+ gtk_widget_show(window->Window);
+ yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
+
+ int size;
+ config_str additions = yon_resource_open_file(kernels_addon_path,&size);
+ GtkTreeIter iter;
+ for (int i=0;ipackage_requirements_size;i++){
+ gtk_list_store_append(window->liststore1,&iter);
+ for (int j=1;jpackage_requirements[i]))
+ gtk_list_store_set(window->liststore1,&iter,2,parsed[3],-1);
+ yon_char_parsed_free(parsed,cur_size);
+ }
+ gtk_list_store_set(window->liststore1,&iter,0,1,1,tab->package_requirements[i],-1);
+ }
+ yon_char_parsed_free(additions,size);
}
-void on_module_remove_clicked(GtkWidget *,dictionary *dict){
+void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
- char *command = remove_command(tab->module);
- yon_command_execute_async(command,widgets);
- tab->module_installed=0;
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text = MODULE_REMOVE_CONFIRMATION_LABEL(tab->name);
+ data->function = NULL;
+ data->data = NULL;
+ if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
+ char *command = remove_command(tab->module);
+ yon_command_execute_async(command,widgets);
+ tab->module_installed=0;
+ }
}
-void on_package_remove_clicked(GtkWidget *,dictionary *dict){
+void on_package_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
- char *command = remove_command(tab->package);
- yon_command_execute_async(command,widgets);
- tab->package_installed=0;
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text = PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name);
+ data->function = NULL;
+ data->data = NULL;
+ int resp = yon_confirmation_dialog_call(self,data);
+ if (resp == GTK_RESPONSE_ACCEPT){
+ char *command = remove_command(tab->package);
+ yon_command_execute_async(command,widgets);
+ tab->package_installed=0;
+ }
}
-void on_launch_cliked(GtkWidget *,dictionary *dict){
+void on_launch_cliked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
- yon_config_set(KERNEL_BOOT_parameter,tab->package);
- yon_interface_update(widgets);
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text = LAUNCH_CONFIRMATION_LABEL(tab->name);
+ data->function = NULL;
+ data->data = NULL;
+ if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
+ yon_config_set(KERNEL_BOOT_parameter,tab->package);
+ yon_interface_update(widgets);
+ }
}
kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
@@ -263,11 +385,14 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
g_list_free(list);
gtk_widget_hide(tab->changelog_button);
gtk_widget_show(tab->launch_button);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button);
@@ -278,6 +403,7 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->changelog_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_package_button);
@@ -337,22 +463,24 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
char *passw = types_parsed[k][0]==' '?yon_char_divide(types_parsed[k],0):NULL;
if (passw) free(passw);
char *tag_type = NULL;
- if (!strcmp(types_parsed[k],"LTS")){
+ if (!strcmp(types_parsed[k],LTS_TAG)){
tag_type = "tag_blue";
- } else if (!strcmp(types_parsed[k],"Stable")){
+ } else if (!strcmp(types_parsed[k],STABLE_TAG)){
tag_type = "tag_green";
- } else if (!strcmp(types_parsed[k],"RealTime")){
+ } else if (!strcmp(types_parsed[k],REALTIME_TAG)){
tag_type = "tag_orange";
- } else if (!strcmp(types_parsed[k],"Hardened")){
+ } else if (!strcmp(types_parsed[k],HARDENED_TAG)){
tag_type = "tag_yellow";
- } else if (!strcmp(types_parsed[k],"Recomended")){
+ } else if (!strcmp(types_parsed[k],RECOMENDED_TAG)){
tag_type = "tag_blue";
- } else if (!strcmp(types_parsed[k],"Reactive")){
+ } else if (!strcmp(types_parsed[k],REACTIVE_TAG)){
tag_type = "tag_purple";
} else continue;
yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL);
}
+ tab->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
+ tab->package_requirements = yon_char_parse(parsed[4],&tab->package_requirements_size,",");
char *check_install_command = get_package_is_installed_command(tab->module);
if (!system(check_install_command)){
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
@@ -409,12 +537,15 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
for (guint i=0;imodule_icon),"",GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
g_list_free(list);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button);
@@ -424,6 +555,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_package_button);
@@ -472,6 +604,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab);
if (!system(check_install_command)){
+ tab->module_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
@@ -484,6 +617,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
free(check_install_command);
check_install_command = get_package_is_installed_command(tab->package);
if (!system(check_install_command)){
+ tab->package_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_hide(tab->install_package_button);
diff --git a/source/ubl-settings-kernel.h b/source/ubl-settings-kernel.h
index 2cd641d..5fcadda 100644
--- a/source/ubl-settings-kernel.h
+++ b/source/ubl-settings-kernel.h
@@ -26,6 +26,7 @@
#define glade_install_path "/com/ublinux/ui/ubl-settings-kernel-install.glade"
#define glade_table_row_path "/com/ublinux/ui/ubl-settings-kernel-table-row.glade"
#define glade_additions_table_row_path "/com/ublinux/ui/ubl-settings-kernel-additions-table-row.glade"
+#define glade_dialog_path "/com/ublinux/ui/ubl-settings-kernel-dialog.glade"
#define banner_path "/com/ublinux/images/ubl-settings-kernel-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-kernel.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
@@ -150,6 +151,10 @@ typedef struct {
GtkWidget *install_package_button;
GtkWidget *changelog_button;
GtkWidget *launch_button;
+ config_str module_requirements;
+ int module_requirements_size;
+ config_str package_requirements;
+ int package_requirements_size;
} kernels_tab;
@@ -174,6 +179,18 @@ typedef struct {
} additions_kernels_tab;
+typedef struct {
+ GtkWidget *Window;
+ GtkWidget *HeadLabel;
+ GtkWidget *TopicLabel;
+ GtkWidget *DependencesTree;
+ GtkWidget *CancelButton;
+ GtkWidget *AcceptButton;
+ GtkCellRenderer *ChooseCell;
+ GtkListStore *liststore1;
+
+} dialog_window;
+
void *yon_interface_update(main_window *widgets);
@@ -193,8 +210,13 @@ void config_init();
void yon_main_window_complete(main_window *widgets);
gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets);
+gboolean yon_terminal_get_progress(main_window *widgets);
void *yon_command_execute_async(char *command,main_window *widgets);
+dialog_window *yon_dialog_window_new();
+
+void on_install_accept(GtkWidget *, dictionary *dict);
+
void on_module_install_clicked(GtkWidget *,dictionary *dict);
void on_package_install_clicked(GtkWidget *,dictionary *dict);
void on_module_remove_clicked(GtkWidget *,dictionary *dict);
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
index 9e5d9b7..78ef180 100644
--- a/source/ubl-strings.h
+++ b/source/ubl-strings.h
@@ -1,15 +1,53 @@
-#define TITLE_LABEL _("ubl-settings-kernel")
-#define TITLE_INFO_LABEL _("kernel configuration")
+#define TITLE_LABEL _("System kernel")
+#define TITLE_INFO_LABEL _("Kernel downloading and installation, kernel selection to boot by default")
#define INFO_TITLE_LABEL _("Information")
#define MODULE_LABEL _("Module:")
#define PACKAGE_LABEL _("Package:")
+#define CANCEL_LABEL _("Cancel")
+
#define PACKAGE_NOT_FOUND_LABEL _("Package were not found")
#define CHANGELOG_NOT_FOUND_LABEL _("Changelog was not found")
#define PACKAGE_INSTALLED_LABEL _("Package installed")
#define MODULE_INSTALLED_LABEL _("Module installed")
-#define BOOT_RUN_LABEL _("Startup boot")
\ No newline at end of file
+#define BOOT_RUN_LABEL _("Startup boot")
+
+
+#define INITRAMFS_TITLE_LABEL _("Initramfs building")
+#define EXECUTE_LABEL _("Execute")
+#define KERNEL_VERSION_LABEL _("Kernel version:")
+#define ADD_DEBUG_LABEL _("Add debug components")
+#define ADD_DRIVERS_LABEL _("Add drivers for current hardware components only")
+
+#define INSTALL_MODULE_LABEL _("Install module")
+#define REMOVE_MODULE_LABEL _("Remove module")
+#define INSTALL_PACKAGE_LABEL _("Install package")
+#define REMOVE_PACKAGE_LABEL _("Remove package")
+#define CHANGELOG_LABEL _("Changelog")
+#define LAUNCH_LABEL _("Launch")
+#define LTS_TAG _("LTS")
+#define REACTIVE_TAG _("Reactive")
+#define RECOMENDED_TAG _("Recomended")
+#define HARDENED_TAG _("Hardened")
+#define REALTIME_TAG _("RealTime")
+#define STABLE_TAG _("Stable")
+
+#define KERNELS_LABEL _("Kernels")
+#define ADDITIONS_LABEL _("Additions")
+#define UPDATE_LABEL _("Update")
+#define OPE_INFO_LABEL _("Open package information")
+#define MORE_LABEL _("More")
+
+#define ACCEPT_LABEL _("Accept")
+#define WARNING_TITLE_LABEL _("Warning")
+#define DEPENDENCES_LABEL _("Dependences")
+
+#define MODULE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel "),target,"?",NULL)
+#define PACKAGE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install package "),target,"?",NULL)
+#define MODULE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove module "),target,"?",NULL)
+#define PACKAGE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove package "),target,"?",NULL)
+#define LAUNCH_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to launch "),target,"?",NULL)
\ No newline at end of file
diff --git a/ubl-settings-kernel-dialog.glade b/ubl-settings-kernel-dialog.glade
new file mode 100644
index 0000000..34d0add
--- /dev/null
+++ b/ubl-settings-kernel-dialog.glade
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-kernel-info.glade b/ubl-settings-kernel-info.glade
index 02b9d6b..143b6be 100644
--- a/ubl-settings-kernel-info.glade
+++ b/ubl-settings-kernel-info.glade
@@ -61,7 +61,7 @@
True
False
- Kernel settings
+ Information
diff --git a/ubl-settings-kernel-install.glade b/ubl-settings-kernel-install.glade
index ff1f9d4..d88d358 100644
--- a/ubl-settings-kernel-install.glade
+++ b/ubl-settings-kernel-install.glade
@@ -1,5 +1,5 @@
-
+
@@ -132,7 +132,7 @@
True
False
- Kernel settings
+ Initramfs building
diff --git a/ubl-settings-kernel.desktop b/ubl-settings-kernel.desktop
index 2624408..f9a5465 100644
--- a/ubl-settings-kernel.desktop
+++ b/ubl-settings-kernel.desktop
@@ -1,11 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=System kernel
-Name[ru]=kernel
+Name[ru]=Ядро системы
GenericName=ubl-settings-kernel
-GenericName[ru]=kernel
-Comment=Kernel downloading and installation for default load
-Comment[ru]=Приложение для kernel
+GenericName[ru]=Ядро системы
+Comment=Kernel downloading and installation, kernel selection to boot by default
+Comment[ru]=Загрузка и устанвока ядер системы, выбор ядра для загрузки по умолчанию
Type=Application
Exec=pkexec ubl-settings-kernel
Icon=com.ublinux.ubl-settings-kernel
diff --git a/ubl-settings-kernel.glade b/ubl-settings-kernel.glade
index 02b42e0..1622efa 100644
--- a/ubl-settings-kernel.glade
+++ b/ubl-settings-kernel.glade
@@ -1,5 +1,5 @@
-
+
@@ -214,6 +214,7 @@
True
True
True
+ Update
image1