diff --git a/gresource.xml b/gresource.xml
index ad86631..19bc681 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -3,6 +3,7 @@
ubl-settings-video.glade
ubl-settings-video-monitor.glade
+ ubl-settings-video-terminal.glade
ubl-settings-video-configuration.glade
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index a344161..165cf28 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -29,10 +29,6 @@ if(WEBKIT_LIBRARIES_FOUND)
add_definitions(${WEBKIT_CFLAGS_OTHER})
endif()
-configure_file(ubl-cmake.in ubl-cmake.h)
-
-file(COPY ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h DESTINATION ./)
-
set(GRESOURCE_C resources.c)
set(GRESOURCE_XML gresource.xml)
@@ -41,6 +37,7 @@ add_custom_target(GLADE ubl-settings-video.glade)
set(DEPENDFILES
../ubl-settings-video.glade
+ ../ubl-settings-video-terminal.glade
../ubl-settings-video-monitor.glade
../ubl-settings-video-configuration.glade
../gresource.xml
@@ -68,19 +65,21 @@ add_custom_target(
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
)
-#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
-#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection")
-
+
+string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND)
+
+if(FORTIFY_FOUND EQUAL -1)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
+endif()
set(SOURCE_FILES
ubl-settings-video.c
ubl-settings-video.h
ubl-strings.h
- ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
)
set(LIBRARIES
diff --git a/source/ubl-cmake.in b/source/ubl-cmake.in
deleted file mode 100644
index d4623a7..0000000
--- a/source/ubl-cmake.in
+++ /dev/null
@@ -1 +0,0 @@
-#cmakedefine WEBKIT_FOUND
diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c
index 67b4be1..51f579e 100644
--- a/source/ubl-settings-video.c
+++ b/source/ubl-settings-video.c
@@ -2,35 +2,91 @@
config main_config;
-
-void on_terminal_done(GtkWidget *terminal, int size, main_window *widgets){
+void on_terminal_done(GtkWidget *terminal, int , main_window *){
gtk_widget_destroy(terminal);
}
-void on_terminal_more(GtkWidget *self, main_window *widgets){
+void on_terminal_more(GtkWidget *, main_window *widgets){
int active = gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->TerminalMoreRevieler));
if (active ==1) active = 0;
else active=1;
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalMoreRevieler),active);
}
-void on_terminal_destroy(GtkWidget *self, main_window *widgets){
+void on_terminal_destroy(GtkWidget *, main_window *widgets){
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
gtk_widget_destroy(widgets->TerminalRevealer);
- yon_proprietary_local_get();
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree)),&model,&iter)){
+ char *module, *package;
+ gtk_tree_model_get(model, &iter, 7,&module, 8,&package,-1);
+ if (!yon_char_is_empty(module)){
+ if (!system(yon_get_is_installed_command(module))){
+ gtk_list_store_set(main_config.list,&iter,9,1,-1);
+ }
+ } else {
+ if (!system(yon_get_is_installed_command(package))){
+ gtk_list_store_set(main_config.list,&iter,10,1,-1);
+ }
+ }
+ }
+ yon_proprietary_get_thread(NULL,widgets);
yon_ubl_status_box_render(PROPRIETARY_OPETAION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
-static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer user_data)
-{
- if (!terminal) return;
- if (pid == -1) printf("Error\n\n\n");
- else vte_terminal_feed_child(VTE_TERMINAL(terminal),(char*)user_data,strlen((char*)user_data));
+
+gboolean on_command_execute_success(GtkWidget *,gint status,main_window *){
+
+ g_mutex_lock(&main_config.progress_mutex);
+ main_config.progress_active=0;
+ g_mutex_unlock(&main_config.progress_mutex);
+ if (!status){
+ yon_ubl_status_box_render(yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
+ } else {
+ yon_ubl_status_box_render(yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_FAIL_TYPE);
+
+ }
+ return G_SOURCE_REMOVE;
}
-void on_terminal_check_progress(VteTerminal *terminal, main_window *widgets){
- char *text = vte_terminal_get_text(terminal,NULL,NULL,NULL);
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),(double)yon_char_find_count(text,"::")/4);
+gboolean on_terminal_check_progress(main_window *widgets){
+ char *text = vte_terminal_get_text_format(VTE_TERMINAL(widgets->terminal),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);
+ double percentage = 0.0;
+ char *last_match = NULL;
+ while (g_match_info_matches(match)) {
+ char *current_match = g_match_info_fetch(match, 0);
+ if (last_match) {
+ g_free(last_match);
+ }
+ last_match = current_match;
+ g_match_info_next(match, NULL);
+ }
+
+ if (last_match) {
+ yon_char_remove_last_symbol(last_match,'%');
+ percentage = atof(last_match);
+ yon_debug_output("%s\n", text);
+ yon_debug_output("%s\n", last_match);
+
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100);
+ g_free(last_match);
+ }
+ g_match_info_unref(match);
+
+ g_mutex_lock(&main_config.progress_mutex);
+ if (percentage==100){
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0);
+ g_mutex_unlock(&main_config.progress_mutex);
+ return G_SOURCE_REMOVE;
+ }
+ g_mutex_unlock(&main_config.progress_mutex);
+ return G_SOURCE_CONTINUE;
}
void yon_terminal_start(main_window *widgets, char *usr_command){
@@ -42,7 +98,7 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
env[0]="";
env[1]=NULL;
- GtkBuilder *builder=gtk_builder_new_from_resource(glade_path);
+ GtkBuilder *builder=gtk_builder_new_from_resource(glade_terminal_path);
widgets->TerminalBox = yon_gtk_builder_get_widget(builder, "TerminalBox");
widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer");
widgets->TerminalMoreRevieler = yon_gtk_builder_get_widget(builder, "TerminalMoreRevieler");
@@ -50,198 +106,179 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
widgets->TerminalScroll = yon_gtk_builder_get_widget(builder, "TerminalScroll");
widgets->TerminalInfoLabel = yon_gtk_builder_get_widget(builder, "TerminalInfoLabel");
- GtkWidget *terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal");
+ widgets->terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal");
+ g_signal_connect(G_OBJECT(widgets->terminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
+
gtk_button_set_label(GTK_BUTTON(widgets->TerminalMoreButton),MORE_LABEL);
- vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
- gtk_widget_set_app_paintable(terminal,1);
- gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"opacited");
- gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"workingbg");
+ vte_terminal_set_size(VTE_TERMINAL(widgets->terminal),10,15);
+ gtk_widget_set_app_paintable(widgets->terminal,1);
+ gtk_style_context_add_class(gtk_widget_get_style_context(widgets->terminal),"opacited");
+ gtk_style_context_add_class(gtk_widget_get_style_context(widgets->terminal),"workingbg");
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->TerminalRevealer);
- g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(on_terminal_done), widgets);
- g_signal_connect(G_OBJECT(terminal), "contents-changed", G_CALLBACK(on_terminal_check_progress), widgets);
+ // g_signal_connect(G_OBJECT(widgets->terminal), "child-exited", G_CALLBACK(on_terminal_done), widgets);
+ // g_signal_connect(G_OBJECT(widgets->terminal), "contents-changed", G_CALLBACK(on_terminal_check_progress), widgets);
g_signal_connect(G_OBJECT(widgets->TerminalMoreButton), "clicked", G_CALLBACK(on_terminal_more), widgets);
- g_signal_connect(G_OBJECT(terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets);
+ g_signal_connect(G_OBJECT(widgets->terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1);
- VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL);
- vte_terminal_set_pty(VTE_TERMINAL(terminal),pty);
- char *install_command=yon_char_unite("tput cup 0 0 && tput ed; ",usr_command," ; sleep 5;exit 0","\n",NULL);
- vte_terminal_spawn_async(VTE_TERMINAL(terminal),
- VTE_PTY_DEFAULT,
- NULL,
- command,
- NULL,
- 0,
- NULL, NULL,
- NULL,
- -1,
- NULL,
- child_ready,
- install_command);
- vte_pty_spawn_async(pty,
- NULL,
- command,
- NULL,
- 0,
- NULL, NULL,
- NULL,
- -1,
- NULL,
- NULL,
- NULL);
- vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 100);
- vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), TRUE);
- vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE);
+ vte_terminal_reset(VTE_TERMINAL(widgets->terminal),0,1);
+ yon_terminal_integrated_start_shell(widgets->terminal,usr_command,on_terminal_done,widgets);
+ vte_terminal_set_scrollback_lines(VTE_TERMINAL(widgets->terminal), 100);
+ vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->terminal), TRUE);
+ vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(widgets->terminal), TRUE);
gtk_widget_show_all(widgets->TerminalRevealer);
+ g_mutex_lock(&main_config.progress_mutex);
+ main_config.progress_active=1;
+ g_mutex_unlock(&main_config.progress_mutex);
+ g_idle_add((GSourceFunc)on_terminal_check_progress,widgets);
}
-void on_driver_pack_install(GtkWidget *self,main_window *widgets){
- GtkTreeIter iter;
- char *name;
+void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){
+ GtkTreeIter iter;
+ // char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
- if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,1,&name,-1);
- yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name));
+ GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
+ if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
+ gtk_widget_set_sensitive(widgets->InfoButton,1);
+ int installed=0;
+ gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)),&iter,0,&installed,-1);
+ if (installed==1){
+ }
} else {
- yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ gtk_widget_set_sensitive(widgets->InfoButton,0);
}
}
-void on_driver_install(GtkWidget *self,main_window *widgets){
+void on_driver_pack_info(GtkWidget *, main_window *widgets){
+
+ pthread_attr_t attr;
+ pthread_t tid;
+ pthread_attr_init(&attr);
GtkTreeIter iter;
- char *name;
+ char *module, *package;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
+ GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,2,&name,-1);
- yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name));
- gtk_list_store_set(main_config.list,&iter,0,1,-1);
+ gtk_tree_model_get(list_s,&iter,7,&module,8,&package,-1);
+ char *command = get_info_proprietary_command(yon_char_is_empty(module)?package:module);
+ pthread_create(&tid,&attr,(void*)yon_launch,command);
+ yon_ubl_status_box_render(INFO_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
} else {
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
-void on_driver_pack_delete(GtkWidget *self,main_window *widgets){
- GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
- if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,1,&name,-1);
- yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name));
- } else {
- yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
- }
-}
+void on_pack_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
-void on_driver_pack_selection_change(GtkWidget *self, main_window *widgets){
- GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
- if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_widget_set_sensitive(widgets->proprietaryInfoButton,1);
- int installed=0;
- gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->proprietaryTreeView)),&iter,0,&installed,-1);
- if (installed==1){
- gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
- gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,1);
- } else {
- gtk_widget_set_sensitive(widgets->proprietaryInstallButton,1);
- gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
- }
+ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
+ GtkTreeIter iter;
+ if (!GTK_IS_TREE_MODEL_FILTER(model)){
+
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
+ model=GTK_TREE_MODEL(main_config.list);
} else {
- gtk_widget_set_sensitive(widgets->proprietaryInfoButton,0);
- gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
- gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
+ GtkTreeIter itar;
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
+ gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
}
-}
-
-void on_driver_selection_change(GtkWidget *self, main_window *widgets){
- GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
- if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_widget_set_sensitive(widgets->driversInfoButton,1);
- int installed=0;
- char *module, *package;
- gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->driversTreeView)),&iter,0,&installed,1,&module,2,&package,-1);
- char *target;
- if (strcmp(module,""))
- target = module;
- else
- target = package;
- if (yon_char_parsed_check_exist(drivers_always_active,drivers_always_active_size,target)>-1){
- gtk_widget_set_sensitive(widgets->driversInstallButton,0);
- gtk_widget_set_sensitive(widgets->driversDeleteButton,0);
- }
- else if (installed==1){
- gtk_widget_set_sensitive(widgets->driversInstallButton,0);
- gtk_widget_set_sensitive(widgets->driversDeleteButton,1);
+ char *package;
+ int installed;
+ gtk_tree_model_get(GTK_TREE_MODEL(model),&iter,1,&installed,8,&package,-1);
+ if (!installed){
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text=yon_char_unite(INSTALL_CONFIRMATION_LABEL(package),"\n",INSTALL_ATTENTION_LABEL,NULL);
+ data->function=NULL;
+ data->data=NULL;
+ if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
+ if (!yon_char_is_empty(package)){
+ char *command = install_proprietary_command(package);
+ yon_terminal_start(widgets,command);
+ }
+ }
+ free(data);
} else {
- gtk_widget_set_sensitive(widgets->driversInstallButton,1);
- gtk_widget_set_sensitive(widgets->driversDeleteButton,0);
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text=REMOVE_CONFIRMATION_LABEL(package);
+ data->function=NULL;
+ data->data=NULL;
+ if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
+ if (!yon_char_is_empty(package)){
+ char *command = delete_proprietary_command(package);
+ yon_terminal_start(widgets,command);
+ }
+ }
+ free(data);
}
- } else {
- gtk_widget_set_sensitive(widgets->proprietaryInfoButton,0);
- gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
- gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
- }
-
}
-void on_driver_delete(GtkWidget *self,main_window *widgets){
+void on_module_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
+ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
- if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,2,&name,-1);
- yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name));
- gtk_list_store_set(main_config.list,&iter,0,0,-1);
+ if (!GTK_IS_TREE_MODEL_FILTER(model)){
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
} else {
- yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ GtkTreeIter itar;
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
+ gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
}
+ char *package;
+ int installed;
+ gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&installed,7,&package,-1);
+ if (!installed){
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text=INSTALL_CONFIRMATION_LABEL(package);
+ data->function=NULL;
+ data->data=NULL;
+ if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
+ if (!yon_char_is_empty(package)){
+ char *command = install_proprietary_command(package);
+ yon_terminal_start(widgets,command);
+ }
+ }
+ free(data);
+ } else {
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text=REMOVE_CONFIRMATION_LABEL(package);
+ data->function=NULL;
+ data->data=NULL;
+ if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
+ if (!yon_char_is_empty(package)){
+ char *command = delete_proprietary_command(package);
+ yon_terminal_start(widgets,command);
+ }
+ }
+ free(data);
+ }
}
-void on_driver_pack_info(GtkWidget *self, main_window *widgets){
-
- pthread_attr_t attr;
- pthread_t tid;
- pthread_attr_init(&attr);
- GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
- if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,1,&name,-1);
- pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name));
- yon_ubl_status_box_render(INFO_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
- } else {
- yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
- }
+gboolean yon_filter_func(GtkTreeModel* model,GtkTreeIter* iter,main_window *widgets){
+ const char *target = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->KernelsCombo));
+ char *cur;
+ gtk_tree_model_get(model,iter,2,&cur,-1);
+ if (!yon_char_is_empty(cur)&&!yon_char_is_empty(target)&&!strcmp(cur,target))return 1;
+ return 0;
}
-void on_driver_info(GtkWidget *self,main_window *widgets){
+void on_kernel_filter_changed(GtkWidget *self, main_window *widgets){
+ int active = gtk_combo_box_get_active(GTK_COMBO_BOX(self));
+ if (active){
+ if (!GTK_IS_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)))){
+ GtkTreeModel *model = gtk_tree_model_filter_new(GTK_TREE_MODEL(main_config.list),NULL);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),model);
+ gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model),(GtkTreeModelFilterVisibleFunc)yon_filter_func,widgets,NULL);
+ }
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree))));
- pthread_attr_t attr;
- pthread_t tid;
- pthread_attr_init(&attr);
- GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
- if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
- gtk_tree_model_get(list_s,&iter,2,&name,-1);
- pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name));
- yon_ubl_status_box_render(INFO_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
} else {
- yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
+ if (GTK_IS_TREE_MODEL_FILTER(model)) {
+ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
+ g_object_unref(model);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
+ }
}
}
-void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
+void on_port_chosen_changed(GtkWidget *, monitor_edit_window *window){
dictionary *dict=NULL;
for (int i=0;iresolutionssize;i++){
free(window->resolutions);
@@ -267,10 +304,10 @@ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
yon_char_remove_last_symbol(resolutions[i],'\n');
}
resolution_supported *res = yon_dictionary_get_data(dict,resolution_supported*);
- int found_size=0;
+ // int found_size=0;
int found = -1;
for (int i=0;isize;i++){
- char *check_line;
+ // char *check_line;
for (int j=1;jline[i])){
found = j;
@@ -310,7 +347,7 @@ void on_sensitive_change_reversed(GtkWidget *self, GtkWidget *toggle)
gtk_widget_set_sensitive(toggle, !state);
}
-void on_auto_choose_drivers(GtkWidget *self, main_window *widgets)
+void on_auto_choose_drivers(GtkWidget *self, main_window *)
{
int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self));
main_config.autoChooseDrivers=state;
@@ -343,37 +380,39 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window
}
}
-void on_save_done(main_window *widgets, config_str output, int size){
- if (widgets) {};
+void on_save_done(main_window *, config_str output, int size){
char *final_output = yon_char_parsed_to_string(output,size,"");
printf("%s\n",final_output);
free(final_output);
yon_char_parsed_free(output,size);
textdomain(template_ui_LocaleName);
switch (main_config.save_config){
- case 0:
+ case YON_CONFIG_GLOBAL:
yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
- case 1:
+ case YON_CONFIG_LOCAL:
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
- case 2:
+ case YON_CONFIG_BOTH:
yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
+ case YON_CONFIG_CUSTOM:
+ yon_ubl_status_box_render(SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
+ break;
}
textdomain(LocaleName);
}
void yon_interface_save(){
- char *autodrivers = NULL;
- char *freedrivers = NULL;
- char *dpms= NULL;
+ // char *autodrivers = NULL;
+ // char *freedrivers = NULL;
+ // char *dpms= NULL;
char *dpi = NULL;
- char *failsafenvidia = NULL;
- char *failsafeati = NULL;
- char *optirun = NULL;
- char *primusrun = NULL;
+ // char *failsafenvidia = NULL;
+ // char *failsafeati = NULL;
+ // char *optirun = NULL;
+ // char *primusrun = NULL;
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->AutoDriverCombo))){
case 0: yon_config_remove_by_key(VGADRV_AUTO);
break;
@@ -433,8 +472,9 @@ void yon_interface_save(){
break;
case 1: yon_config_register(OPTIRUN,OPTIRUN_command,"no");
break;
- case 2: if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(main_config.widgets->OptirunEntry))))
- yon_config_register(OPTIRUN,OPTIRUN_command,(char*)gtk_entry_get_text(GTK_ENTRY(main_config.widgets->OptirunEntry)));
+ case 2: if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(main_config.widgets->OptirunEntry)))){
+ yon_config_register(OPTIRUN,OPTIRUN_command,(char*)gtk_entry_get_text(GTK_ENTRY(main_config.widgets->OptirunEntry)));
+ }
break;
}
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->PrimusrunCombo))){
@@ -442,19 +482,26 @@ void yon_interface_save(){
break;
case 1: yon_config_register(PRIMUSRUN,PRIMUSRUN_command,"no");
break;
- case 2: if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(main_config.widgets->PrimusrunEntry))))
- yon_config_register(PRIMUSRUN,PRIMUSRUN_command,(char*)gtk_entry_get_text(GTK_ENTRY(main_config.widgets->PrimusrunEntry)));
+ case 2: if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(main_config.widgets->PrimusrunEntry)))){
+ yon_config_register(PRIMUSRUN,PRIMUSRUN_command,(char*)gtk_entry_get_text(GTK_ENTRY(main_config.widgets->PrimusrunEntry)));
+ }
break;
}
// switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo))){
// case 0: yon_config_remove_by_key(GL_YIELD);
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
+ // yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
+ // yon_config_set_status(GL_YIELD,-2);
// break;
// case 2: yon_config_register(GL_YIELD,GL_YIELD_command,"USLEEP");
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
+ // yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
+ // yon_config_set_status(GL_YIELD,-2);
// break;
// case 3: yon_config_register(KWIN_TRIPLE_BUFFER,KWIN_TRIPLE_BUFFER_command,"1");
// yon_config_remove_by_key(GL_YIELD);
+ // yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
+ // yon_config_set_status(GL_YIELD,-2);
// break;
// }
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly))){
@@ -485,9 +532,19 @@ void yon_interface_update(){
char *optirun = yon_config_get_by_key(OPTIRUN);
char *primusrun = yon_config_get_by_key(PRIMUSRUN);
char *discrete = yon_config_get_by_key(INTEGRATEDVGA);
- char *gapfix1 = yon_config_get_by_key(GL_YIELD);
- char *gapfix2 = yon_config_get_by_key(KWIN_TRIPLE_BUFFER);
-
+ char *gapfix1 = config(GAPFIX1_parameter);
+ char *gapfix2 = config(GAPFIX2_parameter);
+
+ if (!yon_char_is_empty(gapfix1)){
+ gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),2);
+
+ } else if (!yon_char_is_empty(gapfix2)){
+ gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),3);
+
+ } else {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),0);
+ }
+
if (!yon_char_is_empty(autodrivers)&&!strcmp(autodrivers,"yes"))
gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->AutoDriverCombo),2);
else if (!yon_char_is_empty(autodrivers)&&!strcmp(autodrivers,"no"))
@@ -570,66 +627,53 @@ void yon_interface_update(){
else
gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly),0);
- // if (!yon_char_is_empty(gapfix1))
- // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),2);
- // else if (!yon_char_is_empty(gapfix2))
- // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),3);
- // else
- // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),1);
yon_monitor_view_update();
}
void yon_load_proceed(YON_CONFIG_TYPE type){
- yon_config_clean();
+ if (type!=YON_CONFIG_CUSTOM){
+ yon_config_clean();
+ }
if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
- if (type==YON_CONFIG_GLOBAL){
- yon_config_load_config(type,config_get_global_command,NULL);
- } else if (type==YON_CONFIG_LOCAL){
- yon_config_load_config(type,config_get_local_command,NULL);
- } else if (type==YON_CONFIG_CUSTOM){
- char *path="";
- textdomain(template_ui_LocaleName);
- GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
- yon_gtk_window_setup(GTK_WINDOW(dialog),NULL,TITLE_LABEL,icon_name,"FileChooserWindow");
- textdomain(LocaleName);
- gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-video");
- gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL);
- GtkFileFilter *filter = gtk_file_filter_new();
- gtk_file_filter_add_pattern(filter,"*.ini");
- gtk_file_filter_set_name(filter, "*.ini");
- gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
- gtk_widget_show(dialog);
- int response = gtk_dialog_run(GTK_DIALOG(dialog));
- if (response == GTK_RESPONSE_ACCEPT){
- char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
- if (!yon_char_is_empty(file)){
- path=yon_char_unite("'",file,"'",NULL);
- free(file);
- }
- gtk_widget_destroy(dialog);
- } else {
- gtk_widget_destroy(dialog);
- }
- yon_config_load_config(type,yon_config_get_custom_command(path),NULL);
- }
+ switch (type){
+ case YON_CONFIG_GLOBAL:
+ yon_config_load_config(type,config_get_command("global"),NULL);
+ yon_ubl_status_box_render(yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
+ break;
+ case YON_CONFIG_LOCAL:
+ yon_config_load_config(type,config_get_command("system"),NULL);
+ yon_ubl_status_box_render(yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
+ break;
+ case YON_CONFIG_CUSTOM:
+ char *path = NULL;
+ path=yon_custom_config_init(GTK_FILE_CHOOSER_ACTION_OPEN);
+ if (!yon_char_is_empty(path)){
+ yon_config_clean();
+ yon_config_load_config(type,config_get_command(path),NULL);
+ yon_ubl_status_box_render(yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
+ }
+ break;
+ default:
+ break;
+ }
}
-void on_config_local_load(GtkWidget *self,main_window *widgets){
+void on_config_local_load(GtkWidget *self,main_window *){
if (self){}
yon_load_proceed(YON_CONFIG_LOCAL);
main_config.load_mode=1;
yon_interface_update();
}
-void on_config_global_load(GtkWidget *self,main_window *widgets){
+void on_config_global_load(GtkWidget *self,main_window *){
if (self){}
yon_load_proceed(YON_CONFIG_GLOBAL);
main_config.load_mode=0;
yon_interface_update();
}
-void on_config_custom_load(GtkWidget *self,main_window *widgets){
+void on_config_custom_load(GtkWidget *self,main_window *){
if (self){}
yon_load_proceed(YON_CONFIG_CUSTOM);
main_config.load_mode=3;
@@ -638,29 +682,29 @@ void on_config_custom_load(GtkWidget *self,main_window *widgets){
void on_config_global_local_save(){
yon_interface_save();
- main_config.save_config=3;
- yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL);
+ main_config.save_config=YON_CONFIG_BOTH;
+ yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_command("global"),NULL);
}
void on_config_local_save(){
yon_interface_save();
- main_config.save_config=1;
- yon_save_proceed("system",YON_CONFIG_LOCAL,config_get_local_command,NULL);
+ main_config.save_config=YON_CONFIG_LOCAL;
+ yon_save_proceed("system",YON_CONFIG_LOCAL,config_get_command("system"),NULL);
}
void on_config_global_save(){
yon_interface_save();
- main_config.save_config=0;
- yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_global_command,NULL);
+ main_config.save_config=YON_CONFIG_GLOBAL;
+ yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_command("global"),NULL);
}
void on_config_custom_save(GtkWidget *self, main_window *widgets){
yon_interface_save();
if (self&&widgets){}
- main_config.save_config=1;
- template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL);
+ main_config.save_config=YON_CONFIG_CUSTOM;
+ template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL);
if (window){};
}
@@ -670,7 +714,7 @@ void on_config_custom_save(GtkWidget *self, main_window *widgets){
/**void on_monitor_delete(GtkWidget *self,monitor_data windowd)
* [EN]
*/
-void on_monitor_delete(GtkWidget *self,monitor_data *window){
+void on_monitor_delete(GtkWidget *,monitor_data *window){
if(window){
GtkWidget *target = gtk_widget_get_parent(window->ScreenOverlay);
GtkWidget *flow_box = gtk_widget_get_parent(target);
@@ -686,7 +730,7 @@ void on_monitor_delete(GtkWidget *self,monitor_data *window){
/**void on_monitor_switch(GtkWidget *self,monitor_data *window)
* [EN]
*/
-void on_monitor_switch(GtkWidget *self,monitor_data *window){
+void on_monitor_switch(GtkWidget *,monitor_data *window){
if(window){
int enable = 0;
gtk_widget_set_sensitive(window->MonitorImage,!enable);
@@ -696,20 +740,20 @@ void on_monitor_switch(GtkWidget *self,monitor_data *window){
/**void on_monitor_add(GtkWidget *self,monitor_data *window)
* [EN]
*/
-void on_monitor_add(GtkWidget *self,main_window *widgets){
+void on_monitor_add(GtkWidget *,main_window *widgets){
if(widgets){
yon_monitor_new(widgets,0);
}
}
-void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
+void on_monitor_config_save(GtkWidget *, monitor_edit_window *window){
int enabled=0;
char *target=NULL;
int main_display=0;
char *resolution = NULL;
char *rotate = NULL;
char *position = NULL;
- int switch_off=0;
+ // int switch_off=0;
int modeline_cvt = 0;
int cvt_reduced = 0;
int modeline_gtf = 0;
@@ -726,7 +770,7 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
if (pos&>k_combo_box_get_active(GTK_COMBO_BOX(window->PositionPortCombo))){
position = yon_char_append(pos==1?"lo:":pos==2?"ro:":pos==3?"ab:":"be",gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->PositionPortCombo)));
}
- switch_off = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DoNotSwitchOffCheck));
+ // switch_off = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DoNotSwitchOffCheck));
modeline_cvt = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ModelineCVTCheck));
cvt_reduced = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UseCVTReducedCheck));
modeline_gtf = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ModelineGTFCheck));
@@ -801,28 +845,28 @@ void yon_monitor_parse(monitor_edit_window *window, char *string){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->MainCheck),1);
} else if (strstr(parsed[i],"lo:")||strstr(parsed[i],"LeftOf:")){
- char *location = yon_char_divide_search(parsed[i],":",-1);
+ yon_char_divide_search(parsed[i],":",-1);
int target = yon_gtk_combo_box_text_find(window->PositionPortCombo,parsed[i]);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->RotationCombo),target);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PositionPosCombo),1);
} else if (strstr(parsed[i],"ro:")||strstr(parsed[i],"RightOf:")){
- char *location = yon_char_divide_search(parsed[i],":",-1);
+ yon_char_divide_search(parsed[i],":",-1);
yon_gtk_combo_box_text_find(window->PositionPortCombo,parsed[i]);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PositionPosCombo),2);
} else if (strstr(parsed[i],"ab:")||strstr(parsed[i],"Above:")){
- char *location = yon_char_divide_search(parsed[i],":",-1);
+ yon_char_divide_search(parsed[i],":",-1);
yon_gtk_combo_box_text_find(window->PositionPortCombo,parsed[i]);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PositionPosCombo),3);
} else if (strstr(parsed[i],"bee:")||strstr(parsed[i],"Below:")){
- char *location = yon_char_divide_search(parsed[i],":",-1);
+ yon_char_divide_search(parsed[i],":",-1);
yon_gtk_combo_box_text_find(window->PositionPortCombo,parsed[i]);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PositionPosCombo),4);
} else if (strstr(parsed[i],"rotate:")){
- char *location = yon_char_divide_search(parsed[i],":",-1);
+ yon_char_divide_search(parsed[i],":",-1);
if (strcmp(parsed[i],"normal")){
gtk_combo_box_set_active(GTK_COMBO_BOX(window->RotationCombo),0);
} else if (strcmp(parsed[i],"left")){
@@ -841,7 +885,7 @@ void yon_monitor_parse(monitor_edit_window *window, char *string){
}
}
-void on_monitor_configure(GtkWidget *self,monitor_data *window){
+void on_monitor_configure(GtkWidget *,monitor_data *window){
if(window){
monitor_edit_window *monitors = new(monitor_edit_window);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_configuration);
@@ -880,7 +924,7 @@ void on_monitor_configure(GtkWidget *self,monitor_data *window){
char *target = (char*)gtk_label_get_text(GTK_LABEL(window->NameLabel));
monitors->curport=NULL;
- dictionary *dict=NULL;
+ // dictionary *dict=NULL;
int config_size;
config_str config_ports = yon_config_get_all_by_key(XORG_PARAMETER,&config_size);
for (int i=0;iMonitorsBox));
- for (int i=0;iKernelsCombo));
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->KernelsCombo),ALL_INSTALLED_KERNELS_LABEL);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KernelsCombo),0);
+ return G_SOURCE_REMOVE;
+}
+
+
+gboolean yon_proprietary_append(struct proprietary_struct *target){
+ GtkTreeIter iter;
+ gtk_list_store_append(main_config.list,&iter);
+ gtk_list_store_set(main_config.list,&iter,0,target->module_status,1,target->package_status,2,target->drivers[0],3,target->drivers[3],4,_(target->drivers[4]),5,_(target->drivers[5]),7,target->drivers[1],8,target->drivers[2],9,!yon_char_is_empty(target->drivers[1]),10,!yon_char_is_empty(target->drivers[2]),-1);
+ free(target);
+ return G_SOURCE_REMOVE;
+}
+
+gboolean yon_proprietary_append_kernels(struct proprietary_kernel_append_struct *append){
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(append->widgets->KernelsCombo),append->kernel);
+ free(append->kernel);
+ return G_SOURCE_REMOVE;
+}
+
+void *yon_proprietary_local_get(main_window *widgets){
+ gtk_widget_set_sensitive(widgets->LoadDriversButton,0);
+ g_idle_add((GSourceFunc)yon_proprietary_clear,widgets);
+ int kernels_size;
+ config_str kernels_installed=yon_config_load(yon_debug_output("%s\n",yon_get_kernels_installed),&kernels_size);
+ if (!kernels_size){
+ yon_ubl_status_box_render_thread(KERNELS_SUPPORTED_UNFOUND_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ }
+
+ for (int i=0;iwidgets=widgets;
+ cur->kernel=yon_char_new(kernels_installed[i]);
+ g_idle_add((GSourceFunc)yon_proprietary_append_kernels,cur);
+ }
+
int size;
config_str rtn=NULL;
rtn = yon_file_open(get_proprietary_drivers_info_path,&size);
- config_str drivers=yon_config_load(get_proprietary_installed_command,&drivers_size);
- for (int i=0;i-1;
- gtk_list_store_append(main_config.list,&iter);
- gtk_list_store_set(main_config.list,&iter,0,status,1,current[1],2,current[2],3,current[3],4,_(current[4]),5,_(current[5]),-1);
- } else if (strcmp(current[2],"")){
- int status= yon_char_parsed_check_exist(drivers,drivers_size,current[2])>-1;
- gtk_list_store_append(main_config.list2,&iter);
- gtk_list_store_set(main_config.list2,&iter,0,status,1,current[2],2,current[2],3,current[3],4,_(current[4]),5,_(current[5]),-1);
+ if ((!strcmp(current[0],"")||yon_char_parsed_check_exist(kernels_installed,kernels_size,current[0])>-1)){
+ if ((!yon_char_is_empty(current[1])&&!system(yon_get_is_exist_command(yon_debug_output("%s\n\n\n",current[1]))))||(!yon_char_is_empty(current[2])&&!system(yon_get_is_exist_command(yon_debug_output("%s\n\n\n",current[2]))))){
+ int module_status = !yon_char_is_empty(current[1])?!system(yon_get_is_installed_command(current[1])):0;
+ int package_status = !yon_char_is_empty(current[2])?!system(yon_get_is_installed_command(current[2])):0;
+ struct proprietary_struct *cur = malloc(sizeof(struct proprietary_struct));
+ cur->drivers=current;
+ cur->drivers_size=current_size;
+ cur->module_status=module_status;
+ cur->package_status=package_status;
+ g_idle_add((GSourceFunc)yon_proprietary_append,cur);
+ }
}
}
+ char *status_text = yon_char_unite(yon_char_get_localised_from_lib(SUCCESS_LABEL),". ", !getuid()? main_config.load_mode==1?yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(ROOT_WARNING_LABEL),NULL);
+ yon_ubl_status_box_render_thread(status_text,!getuid()?BACKGROUND_IMAGE_SUCCESS_TYPE:BACKGROUND_IMAGE_FAIL_TYPE);
+ free(status_text);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
+ gtk_widget_set_sensitive(widgets->LoadDriversButton,1);
+ g_thread_exit (NULL);
+}
+
+void yon_proprietary_get_thread(GtkWidget *,main_window *widgets){
+ yon_ubl_status_box_render(PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
+ g_thread_new("drivers_loading",(GThreadFunc)(yon_proprietary_local_get),widgets);
}
void yon_monitor_view_dictionary_destroy(void *window){
@@ -1043,7 +1135,6 @@ void yon_monitor_set_resolutions(){
supported->size=0;
yon_dictionary_add_or_create_if_exists_with_data(main_config.supported_resolutions,connected_ports[i],supported);
}
- config_str final=NULL;
for(int i=0;iInformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
- else if (strstr(vendor,"AMD"),strstr(vendor,"Advanced Micro Devices")){
+ else if (strstr(vendor,"AMD")&&strstr(vendor,"Advanced Micro Devices")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
@@ -1199,18 +1290,46 @@ void yon_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target){
gtk_widget_set_sensitive(target,active>1 ? 1 : 0);
}
+void on_database_update(void *,void *widgets){
+ yon_terminal_window_launch(GTK_WINDOW(((main_window*)widgets)->Window),install_proprietary_command(""),yon_char_get_localised_from_lib(SUCCESS_LABEL),OPERATION_FAIL_LABEL);
+}
+
+void on_gapfix_changed(GtkWidget*, main_window *widgets){
+ int active = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->FrameGapCombo));
+ switch(active){
+ case 0: {
+ yon_config_remove_by_key(GAPFIX1_parameter);
+ yon_config_remove_by_key(GAPFIX2_parameter);
+ } break;
+ case 1: {
+ yon_config_remove_by_key(GAPFIX2_parameter);
+ yon_config_remove_by_key(GAPFIX2_parameter);
+ } break;
+ case 2:{
+
+ yon_config_register(GAPFIX1_parameter,GAPFIX1_command,"USLEEP");
+ yon_config_remove_by_key(GAPFIX2_parameter);
+ } break;
+ case 3:{
+ yon_config_register(GAPFIX2_parameter,GAPFIX2_command,"1");
+ yon_config_remove_by_key(GAPFIX1_parameter);
+
+ } break;
+ }
+}
+
/** void yon_setup_widgets(main_window *widgets)
* [EN]
* Sets up every element on main window
* [RU]
*
* */
-void yon_main_window_complete(main_window *widgets){
+template_main_window *yon_main_window_complete(main_window *widgets){
widgets = yon_remalloc(widgets,sizeof(main_window));
main_config.widgets=widgets;
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
- // Custom widgets configuration
+ // Custom widgets configuration
{
widgets->AutoDriverCombo = yon_gtk_builder_get_widget(builder,"AutoDriverCombo");
widgets->FreeDriverCombo = yon_gtk_builder_get_widget(builder,"FreeDriverCombo");
@@ -1228,27 +1347,17 @@ void yon_main_window_complete(main_window *widgets){
widgets->PrimusrunButton = yon_gtk_builder_get_widget(builder,"PrimusrunButton");
widgets->FrameGapCombo = yon_gtk_builder_get_widget(builder,"FrameGapCombo");
- widgets->proprietaryTreeView = yon_gtk_builder_get_widget(builder, "proprietaryTreeView");
- widgets->proprietaryInfoButton = yon_gtk_builder_get_widget(builder, "proprietaryInfoButton");
- widgets->proprietaryDeleteButton = yon_gtk_builder_get_widget(builder, "proprietaryDeleteButton");
- widgets->proprietaryInstallButton = yon_gtk_builder_get_widget(builder, "proprietaryInstallButton");
- widgets->proprietaryTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "proprietaryTreeSelection"));
- widgets->driversTreeView = yon_gtk_builder_get_widget(builder, "driversTreeView");
- widgets->driversInfoButton = yon_gtk_builder_get_widget(builder, "driversInfoButton");
- widgets->driversDeleteButton = yon_gtk_builder_get_widget(builder, "driversDeleteButton");
- widgets->driversInstallButton = yon_gtk_builder_get_widget(builder, "driversInstallButton");
+ widgets->DriversTree = yon_gtk_builder_get_widget(builder, "DriversTree");
+ widgets->InfoButton = yon_gtk_builder_get_widget(builder, "InfoButton");
+ // widgets->DeleteButton = yon_gtk_builder_get_widget(builder, "DeleteButton");
+ // widgets->InstallButton = yon_gtk_builder_get_widget(builder, "InstallButton");
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
widgets->MenusTab = yon_gtk_builder_get_widget(builder, "MenusTab");
- widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "driversTreeSelection"));
widgets->LoadDriversButton = yon_gtk_builder_get_widget(builder,"LoadDriversButton");
- widgets->LoadDriversButton1 = yon_gtk_builder_get_widget(builder,"LoadDriversButton1");
- widgets->proprietaryNotebook = yon_gtk_builder_get_widget(builder,"notebook1");
- widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "proprietartInstalledColumn"));
- widgets->ProprietaryPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryPackageColumn"));
- widgets->ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDriverColumn"));
- widgets->ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDescriptionColumn"));
- widgets->ProprietarySupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietarySupportedColumn"));
+ widgets->DriversTree = yon_gtk_builder_get_widget(builder,"DriversTree");
+ widgets->TopTree = yon_gtk_builder_get_widget(builder,"TopTree");
+ widgets->KernelsCombo = yon_gtk_builder_get_widget(builder,"KernelsCombo");
widgets->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriverModulesTab"));
widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriversTab"));
@@ -1263,28 +1372,21 @@ void yon_main_window_complete(main_window *widgets){
widgets->InformationLabel = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel"));
widgets->InformationLabel2 = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel2"));
- widgets->driverInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverInstalledColumn"));
- widgets->driverPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverPackageColumn"));
- widgets->driverDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverDriverColumn"));
- widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverDescriptionColumn"));
- widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverSupportedColumn"));
+ widgets->PackageRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder, "PackageRenderer"));
+ widgets->ModuleRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder, "ModuleRenderer"));
main_config.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore6"));
main_config.list2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore1"));
- g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_local_get), widgets);
- g_signal_connect(G_OBJECT(widgets->LoadDriversButton1), "clicked", G_CALLBACK(yon_proprietary_local_get), widgets);
-
- g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets);
- g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets);
- g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
- g_signal_connect(G_OBJECT(widgets->proprietaryTreeView), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets);
- g_signal_connect(G_OBJECT(widgets->driversTreeView), "cursor-changed", G_CALLBACK(on_driver_selection_change), widgets);
-
- g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets);
- g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets);
- g_signal_connect(G_OBJECT(widgets->driversInfoButton), "clicked", G_CALLBACK(on_driver_info), widgets);
+ g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_get_thread), widgets);
+ if (!getuid()){
+ g_signal_connect(G_OBJECT(widgets->PackageRenderer), "toggled", G_CALLBACK(on_pack_install_activate), widgets);
+ g_signal_connect(G_OBJECT(widgets->ModuleRenderer), "toggled", G_CALLBACK(on_module_install_activate), widgets);
+ }
+ g_signal_connect(G_OBJECT(widgets->InfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
+ g_signal_connect(G_OBJECT(widgets->DriversTree), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets);
+
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
@@ -1295,12 +1397,146 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL);
g_signal_connect(G_OBJECT(widgets->OptirunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->OptirunEntry);
g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry);
+ g_signal_connect(G_OBJECT(widgets->KernelsCombo),"changed",G_CALLBACK(on_kernel_filter_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->FrameGapCombo),"changed",G_CALLBACK(on_gapfix_changed),widgets);
+
+ // yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),0));
+ // yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),1));
+
+ // gtk_tree_view_column_set_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->TopTree),0),gtk_tree_view_column_get_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),0))+gtk_tree_view_column_get_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),1)));
// yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(VGADRV_AUTO_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ if (!strcmp(default_driver[0],"yes")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(ON_LABEL));
+ } else if (!strcmp(default_driver[0],"no")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(OFF_LABEL));
+ }
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->AutoDriverCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(VGADRV_NOFREE_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ if (!strcmp(default_driver[0],"yes")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(FREE_DRIVERS_ON_LABEL));
+ } else if (!strcmp(default_driver[0],"no")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(NOUVEAU_RADEON_OFF_LABEL));
+ } else if (!strcmp(default_driver[0],"nouveau")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(RADEON_OFF_LABEL));
+ } else if (!strcmp(default_driver[0],"radeon")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(NOUVEAU_OFF_LABEL));
+ }
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->FreeDriverCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(FAILSAFENVIDIA_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->FailsafeNvidiaCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(FAILSAFEATI_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->FailsafeAMDCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(XORG_EXT_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ if (!strcmp(default_driver[0],"dpms")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(ON_LABEL));
+ } else if (!strcmp(default_driver[0],"nodpms")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(OFF_LABEL));
+ }
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->DontSwitchDisplaysOffCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(XORG_DPI_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->DisplayScalingCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(INTEGRATEDVGA_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->DisplayDiscreteOnly),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(OPTIRUN_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->OptirunCombo),final);
+ }
+ {
+ int size;
+ config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(PRIMUSRUN_command,"default",NULL,NULL),&size);
+ char *final=NULL;
+ if (size&&strcmp(default_driver[0],"(null)\n")){
+ final = yon_char_get_localised_from_lib(DEFAULT_CUSTOM_LABEL(default_driver[0]));
+
+ } else {
+ final = yon_char_get_localised_from_lib(DEFAULT_LABEL);
+ }
+ gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->PrimusrunCombo),final);
+ }
+
+ yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->DriversTree));
yon_adapter_window_setup(widgets);
}
yon_save_window_set_postsave_function(on_save_done,widgets);
on_config_local_load(NULL,widgets);
+
+ return (template_main_window*)widgets;
}
/**config_init()
@@ -1320,6 +1556,7 @@ void config_init(){
main_config.lock_save_global=0;
main_config.lock_save_local=0;
main_config.load_mode=1;
+ main_config.progress_active=0;
}
int main(int argc, char *argv[]){
@@ -1335,18 +1572,19 @@ int main(int argc, char *argv[]){
gtk_init(&argc, &argv);
template_main_window *widgets = yon_ubl_window_setup();
- yon_main_window_complete((main_window*)widgets);
+ widgets = yon_main_window_complete((main_window*)widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
-
- if (getuid()!=0){
- textdomain(template_ui_LocaleName);
- yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
- textdomain(LocaleName);
- }
-
- yon_proprietary_local_get();
- // on_config_fill_interface(&widgets);
+ yon_root_button_setup(widgets,argv,argc);
+
+ if (system(yon_check_database_command)){
+ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
+ data->action_text=DATABASE_UNACCESSIBLE_LABEL;
+ data->function = on_database_update;
+ data->data = widgets;
+ yon_confirmation_dialog_call(widgets->HeadOverlay,data);
+ }
+ yon_proprietary_get_thread(NULL,(main_window*)widgets);
yon_monitor_set_resolutions();
gtk_main();
return 0;
diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h
index 4cee7ae..2dcfbca 100644
--- a/source/ubl-settings-video.h
+++ b/source/ubl-settings-video.h
@@ -1,9 +1,6 @@
#include
#include
-#include "ubl-cmake.h"
-#ifdef WEBKIT_FOUND
- #include
-#endif
+#include
#include
#include
#include
@@ -17,7 +14,6 @@
#include
#include
#include
-// #include "ubl-utils.h"
#include "ubl-strings.h"
#define VTE_INCLUDE
#include
@@ -34,17 +30,13 @@
#define banner_path "/com/ublinux/images/ubl-settings-video-banner.png"
#define glade_path "/com/ublinux/ui/ubl-settings-video.glade"
+#define glade_terminal_path "/com/ublinux/ui/ubl-settings-video-terminal.glade"
#define glade_path_monitor "/com/ublinux/ui/ubl-settings-video-monitor.glade"
#define glade_path_configuration "/com/ublinux/ui/ubl-settings-video-configuration.glade"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-video"
#define CssPath "/com/ublinux/css/ubl-settings-video.css"
-#define StatusLoadGlobalFailed _("Failed to load global configuration")
-#define StatusLoadLocalFailed _("Failed to load local configuration")
-
-#define StatusSaveGlobalFailed _("Saving to global configuration Succeeded")
-#define StatusSaveLocalFailed _("Saving to local configuration Succeeded")
#define get_ports_command "xrandr |grep -E \"*connected\" |cut -d' ' -f1"
@@ -73,17 +65,23 @@
#define remove_drivers_local_command "/usr/bin/ubconfig --target system remove video "
-#define install_proprietary_command "pacman --quiet --needed --noconfirm -Sy "
+#define install_proprietary_command(target) yon_char_append("pacman --quiet --needed --noconfirm -Sy ",target)
-#define delete_proprietary_command "pacman -R --noconfirm "
+#define delete_proprietary_command(target) yon_char_append("pacman -R --noconfirm ",target)
-#define get_info_proprietary_command "pamac-manager --details="
+#define get_info_proprietary_command(target) yon_char_append("pamac-manager --details=",target)
#define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2"
+#define yon_check_database_command "pacman -Sqs >/dev/null"
+
+#define yon_get_kernels_installed "find /usr/lib/modules/ -maxdepth 2 -type f -iname \"pkgbase\" -exec cat {} + 2>/dev/null"
+
+#define yon_get_is_installed_command(target) yon_char_append("pacman -Qs ",target)
+#define yon_get_is_exist_command(target) yon_char_append("pacman -Ss ",target)
+
#define get_proprietary_drivers_command "pacman -Sysq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'"
#define get_proprietary_drivers_local_command "pacman -Qq |grep -E 'nvidia|^vulkan-amdgpu|^amdgpu-pro-libgl'"
-#define get_proprietary_installed_command "pacman -Qsq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'"
// #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'"
@@ -100,8 +98,11 @@
#define OPTIRUN "OPTIRUN"
#define PRIMUSRUN "PRIMUSRUN"
#define INTEGRATEDVGA "INTEGRATEDVGA"
-#define KWIN_TRIPLE_BUFFER "\"export KWIN_TRIPLE_BUFFER"
-#define GL_YIELD "\"export __GL_YIELD"
+
+#define GAPFIX1_parameter "ENVIRONMENT[profile:__GL_YIELD]"
+#define GAPFIX1_command "ubconfig --source global get [environment] ENVIRONMENT[profile:__GL_YIELD]"
+#define GAPFIX2_parameter "ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]"
+#define GAPFIX2_command "ubconfig --source global get [environment] ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]"
#define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO"
#define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE"
@@ -117,11 +118,7 @@
#define XORG_PARAMETER "XORG_MONITOR"
-#define config_get_command(target) yon_char_append("cat ",target)
-
-#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA",NULL)
-#define config_get_local_command "ubconfig --source system get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA"
-#define config_get_global_command yon_char_new("ubconfig --source global get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA")
+#define config_get_command(source) yon_char_unite("ubconfig --source ",source," get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA",NULL)
#define config_get_default_command ""
#define config_get_global_only_parameters ""
@@ -176,28 +173,12 @@ typedef struct
GtkWidget *PrimusrunButton;
GtkWidget *FrameGapCombo;
- GtkWidget *proprietaryTreeView;
- GtkWidget *proprietaryInfoButton;
- GtkWidget *proprietaryDeleteButton;
- GtkWidget *proprietaryInstallButton;
- GtkTreeSelection *proprietaryTreeSelection;
- GtkWidget *driversTreeView;
- GtkWidget *driversInfoButton;
- GtkWidget *driversDeleteButton;
- GtkWidget *driversInstallButton;
- GtkTreeSelection *driversTreeSelection;
-
- GtkTreeViewColumn *proprietartInstalledColumn;
- GtkTreeViewColumn *ProprietaryPackageColumn;
- GtkTreeViewColumn *ProprietaryDriverColumn;
- GtkTreeViewColumn *ProprietaryDescriptionColumn;
- GtkTreeViewColumn *ProprietarySupportedColumn;
-
- GtkTreeViewColumn *driverInstalledColumn;
- GtkTreeViewColumn *driverPackageColumn;
- GtkTreeViewColumn *driverDriverColumn;
- GtkTreeViewColumn *driverDescriptionColumn;
- GtkTreeViewColumn *driverSupportedColumn;
+ GtkWidget *DriversTree;
+ GtkWidget *TopTree;
+ GtkCellRenderer *ModuleRenderer;
+ GtkCellRenderer *PackageRenderer;
+ GtkWidget *KernelsCombo;
+ GtkWidget *InfoButton;
GtkWidget *DriverModulesTab;
GtkWidget *DriversTab;
@@ -221,10 +202,10 @@ typedef struct
GtkWidget *TerminalMoreRevieler;
GtkWidget *MenusTab;
+ GtkWidget *terminal;
+
GtkWidget *LoadDriversButton;
- GtkWidget *LoadDriversButton1;
- GtkWidget *proprietaryNotebook;
} main_window;
typedef struct
@@ -257,6 +238,10 @@ typedef struct
int dblock;
int save_config;
main_window *widgets;
+
+ GMutex progress_mutex;
+ int progress_active;
+
} config;
typedef struct
@@ -340,8 +325,72 @@ typedef struct
GtkWidget *ProprietaryAcceptButton;
} driver_window;
+
+struct proprietary_struct {
+ config_str drivers;
+ int drivers_size;
+ int module_status;
+ int package_status;
+};
+
+struct proprietary_kernel_append_struct {
+ main_window *widgets;
+ char *kernel;
+};
+
monitor_data *yon_monitor_new(main_window *widgets,int dull);
void yon_launch_with_output(char *command);
-void yon_proprietary_local_get();
void yon_monitor_view_update();
+void on_save_done(main_window *, config_str output, int size);
+void yon_proprietary_get_thread(GtkWidget *self,main_window *widgets);
+void on_terminal_done(GtkWidget *terminal, int size, main_window *widgets);
+void on_terminal_more(GtkWidget *self, main_window *widgets);
+void on_terminal_destroy(GtkWidget *self, main_window *widgets);
+gboolean on_terminal_check_progress(main_window *widgets);
+void yon_terminal_start(main_window *widgets, char *usr_command);
+void on_driver_pack_selection_change(GtkWidget *self, main_window *widgets);
+void on_driver_pack_info(GtkWidget *self, main_window *widgets);
+void on_pack_install_activate(GtkCellRendererToggle* self,gchar* path,main_window *widgets);
+void on_module_install_activate(GtkCellRendererToggle* self,gchar* path,main_window *widgets);
+gboolean yon_filter_func(GtkTreeModel* model,GtkTreeIter* iter,main_window *widgets);
+void on_kernel_filter_changed(GtkWidget *self, main_window *widgets);
+void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window);
+void on_sensitive_change(GtkWidget *self, GtkWidget *toggle);
+void on_sensitive_change_reversed(GtkWidget *self, GtkWidget *toggle);
+void on_auto_choose_drivers(GtkWidget *self, main_window *widgets);
+void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window *window);
+void yon_interface_save();
+void yon_interface_update();
+void yon_load_proceed(YON_CONFIG_TYPE type);
+void on_config_local_load(GtkWidget *self,main_window *widgets);
+void on_config_global_load(GtkWidget *self,main_window *widgets);
+void on_config_custom_load(GtkWidget *self,main_window *widgets);
+void on_config_global_local_save();
+void on_config_local_save();
+void on_config_global_save();
+void on_config_custom_save(GtkWidget *self, main_window *widgets);
+void on_monitor_delete(GtkWidget *self,monitor_data *window);
+void on_monitor_switch(GtkWidget *self,monitor_data *window);
+void on_monitor_add(GtkWidget *self,main_window *widgets);
+void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window);
+void yon_monitor_parse(monitor_edit_window *window, char *string);
+void on_monitor_configure(GtkWidget *self,monitor_data *window);
+void yon_monitor_view_update();
+void *yon_proprietary_local_get(main_window *widgets);
+void yon_proprietary_get_thread(GtkWidget *self,main_window *widgets);
+void yon_monitor_view_dictionary_destroy(void *window);
+monitor_data *yon_monitor_new(main_window *widgets,int dull);
+void yon_monitor_set_resolutions();
+void yon_adapter_window_setup(main_window *widgets);
+void yon_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target);
+void on_database_update(void *self,void *widgets);
+template_main_window *yon_main_window_complete(main_window *widgets);
+void config_init();
+
+void *yon_proprietary_local_get(main_window *widgets);
+gboolean yon_proprietary_append_kernels(struct proprietary_kernel_append_struct *append);
+gboolean yon_proprietary_append(struct proprietary_struct *target);
+gboolean yon_proprietary_clear(main_window *widgets);
+gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets);
+void on_gapfix_changed(GtkWidget*self, main_window *widgets);
#endif
\ No newline at end of file
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
index 47e58f2..86d75c6 100644
--- a/source/ubl-strings.h
+++ b/source/ubl-strings.h
@@ -119,6 +119,10 @@
#define DESCRIPTION_LABEL _("Description")
#define VENDOR_LABEL _("Vendor")
#define MODEL_LABEL _("Model")
+#define KERNEL_LABEL _("Kernel:")
+#define KERNEL_TAB_LABEL _("Kernel")
+#define MODULE_TAB_LABEL _("Module")
+#define DRIVER_INFO_LABEL _("Driver information")
#define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use")
#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules")
#define INTEL_DESCRIPTION_LABEL _("UBLinux package includes Intel driver and utilities")
@@ -144,42 +148,60 @@
#define DRIVER_MODULES_LABEL _("Driver Modules")
#define DEVICES_AND_DRIVERS_LABEL _("Devices and Drivers")
-#define DESCR1_LABEL _("UBLinux module includes NVIDIA 340xx driver and utilities")
-#define DESCR2_LABEL _("UBLinux package includes NVIDIA 340xx driver and utilities")
-#define DESCR3_LABEL _("UBLinux module includes NVIDIA 390xx driver and utilities")
-#define DESCR4_LABEL _("UBLinux package includes NVIDIA 390xx driver and utilities")
-#define DESCR5_LABEL _("UBLinux module includes NVIDIA 470xx driver and utilities")
-#define DESCR6_LABEL _("UBLinux package includes NVIDIA 470xx driver and utilities")
-#define DESCR7_LABEL _("UBLinux module includes NVIDIA 510xx driver and utilities")
-#define DESCR8_LABEL _("UBLinux package includes NVIDIA 510xx driver and utilities")
-#define DESCR9_LABEL _("UBLinux package includes opensource driver NVIDIA")
-#define DESCR10_LABEL _("UBLinux package includes AMD Vulkan driver and utilities")
-#define DESCR11_LABEL _("UBLinux module includes AMD driver and utilities")
-#define DESCR12_LABEL _("UBLinux package includes Intel driver and utilities")
-#define DESCR13_LABEL _("UBLinux package includes AMD opensource driver")
-#define DESCR14_LABEL _("UBLinux package includes ATI opensource driver")
-#define DESCR15_LABEL _("UBLinux package includes dummy driver")
-#define DESCR16_LABEL _("UBLinux package includes framebuffer video driver")
-#define DESCR17_LABEL _("UBLinux package includes VIA video driver")
-#define DESCR18_LABEL _("UBLinux package includes SiS video driver")
-#define DESCR19_LABEL _("UBLinux package includes vesa video driver")
-#define DESCR20_LABEL _("UBLinux package includes VMWare video driver")
-#define DESCR21_LABEL _("UBLinux package includes Voodoo video driver")
-#define DESCR22_LABEL _("UBLinux package includes qxl video driver")
-
-#define DESCR23_LABEL _("Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards")
-#define DESCR24_LABEL _("Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards")
-#define DESCR25_LABEL _("Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards")
-#define DESCR26_LABEL _("Open source nvidia graphics card driver")
-#define DESCR27_LABEL _("Driver for AMD Radeon R9 285/290/290X, Radeon R9 360/380/380X/390/390X, Radeon R9 Fury/Fury X/Nano, Radeon RX 400/500, Radeon RX Vega, Radeon VII, Radeon RX 5000/6000/7000 series video cards")
-#define DESCR28_LABEL _("Driver for video cards Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600")
-#define DESCR29_LABEL _("Opensource X.org amdgpu video driver for AMD graphics card")
-#define DESCR30_LABEL _("Opensource X.org ati video driver for ATI graphics card")
-#define DESCR31_LABEL _("X.org dummy video driver")
-#define DESCR32_LABEL _("X.org framebuffer video driver")
-#define DESCR33_LABEL _("Open Source X driver for VIA IGPs")
-#define DESCR34_LABEL _("X.org SiS USB video driver")
-#define DESCR35_LABEL _("X.org vesa video driver")
-#define DESCR36_LABEL _("X.org vmware video driver")
-#define DESCR37_LABEL _("X.org 3dfx Voodoo1/Voodoo2 2D video driver")
-#define DESCR38_LABEL _("X.org X11 qxl video driver")
\ No newline at end of file
+#define DESCR1_LABEL _("X.org amdgpu video driver")
+#define DESCR2_LABEL _("X.org ati video driver")
+#define DESCR3_LABEL _("X.org dummy video driver")
+#define DESCR4_LABEL _("X.org framebuffer video driver")
+#define DESCR5_LABEL _("X.org Intel video driver")
+#define DESCR6_LABEL _("X.org NVIDIA video driver")
+#define DESCR7_LABEL _("X.org X11 qxl video driver")
+#define DESCR8_LABEL _("X.org SiS USB video driver")
+#define DESCR9_LABEL _("X.org vesa video driver")
+#define DESCR10_LABEL _("X.org vmware video driver")
+#define DESCR11_LABEL _("X.org 3dfx Voodoo1/Voodoo2 2D video driver")
+#define DESCR12_LABEL _("X.Org Openchrome drivers")
+#define DESCR13_LABEL _("X.org tdfx video driver")
+#define DESCR14_LABEL _("X.org ati Rage128 video driver")
+#define DESCR15_LABEL _("X.org mach64 video driver")
+#define DESCR16_LABEL _("X.org siliconmotion video driver")
+#define DESCR18_LABEL _("X.org S3 Virge video driver")
+#define DESCR19_LABEL _("X.org S3 video driver")
+#define DESCR20_LABEL _("X.org Rendition video driver")
+#define DESCR21_LABEL _("X.org neomagic video driver")
+#define DESCR22_LABEL _("X.org mga video driver")
+#define DESCR23_LABEL _("X.org Intel i740 video driver")
+#define DESCR24_LABEL _("X.org Number 9 I128 video driver")
+#define DESCR25_LABEL _("X.org dummy video driver with an allocated vt")
+#define DESCR26_LABEL _("Cirrus Logic video driver for the Xorg X server")
+#define DESCR27_LABEL _("X.org Chips and Technologies video driver")
+#define DESCR28_LABEL _("AMD Vulkan driver and utilities")
+#define DESCR29_LABEL _("NVIDIA 390xx driver and utilities")
+#define DESCR30_LABEL _("NVIDIA 470xx driver and utilities")
+#define DESCR31_LABEL _("NVIDIA 550xx driver and utilities")
+
+#define DESCR32_LABEL _("Driver for Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600")
+#define DESCR33_LABEL _("Driver for Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, LynxEM+, Lynx3DM, Cougar3DR, MSOC)")
+#define DESCR34_LABEL _("Driver for S3 based video cards (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, ViRGE GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)")
+#define DESCR35_LABEL _("Driver for S3 based video cards (Trio32, Trio64, Trio64V+, Aurora64V+,Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)")
+#define DESCR36_LABEL _("Driver for Rendition/Micron based video card (V1000, V2100, V2200)")
+#define DESCR37_LABEL _("Driver for the Neomagic graphics chipsets (MagicGraph 128, 128V, 128ZV, 128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)")
+#define DESCR38_LABEL _("Driver for Matrox video cards (MGA2064W, MGA1064SG, MGA2164W, G100, G200, G400, G450, G550)")
+#define DESCR39_LABEL _("Driver for Intel i740 video cards")
+#define DESCR40_LABEL _("Driver for Cirrus Logic video chips")
+#define DESCR41_LABEL _("Driver for Chips and Technologies video processors (ct65520, ct65525, ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)")
+#define DESCR42_LABEL _("Driver for AMD Radeon RX 7000, 6000, 5000 Series, Radeon Pro W5000 Series")
+#define DESCR43_LABEL _("Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, 500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, Quadro Sync, Quadro SDI, NVS series video cards")
+#define DESCR44_LABEL _("Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID series video cards")
+#define DESCR45_LABEL _("Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, 16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards")
+
+#define DATABASE_UNACCESSIBLE_LABEL _("Database files must be updated")
+
+#define KERNELS_SUPPORTED_UNFOUND_LABEL _("Warning: Couldn't find any supported kernel version")
+
+#define ALL_INSTALLED_KERNELS_LABEL _("Default (All installed)")
+#define FAIL_LABEL _("Driver installation has failed")
+#define OPERATION_FAIL_LABEL _("Operation has failed")
+
+#define INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install driver "),"",target,"?",NULL)
+#define REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove driver "),"",target,"?",NULL)
+#define INSTALL_ATTENTION_LABEL yon_char_unite("",_("Attention!")," ",_("If you work in sandbox mode, you must install the package with the module!"),NULL)
\ No newline at end of file
diff --git a/ubl-settings-video-terminal.glade b/ubl-settings-video-terminal.glade
new file mode 100644
index 0000000..d76c8b6
--- /dev/null
+++ b/ubl-settings-video-terminal.glade
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+ 300
+ 1
+ 10
+
+
diff --git a/ubl-settings-video.css b/ubl-settings-video.css
index 1ca94fe..b2a9e8b 100644
--- a/ubl-settings-video.css
+++ b/ubl-settings-video.css
@@ -4,6 +4,7 @@
}
.noborder {
border:none;
+ box-shadow: none;
}
.nobackground {
background:transparent;
diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade
index 450681f..8e8026d 100644
--- a/ubl-settings-video.glade
+++ b/ubl-settings-video.glade
@@ -2,7 +2,6 @@
-
True
@@ -110,166 +109,6 @@
-
- 300
- 0.7299999937415127
- 1
- 10
-
-
- True
- True
- False
- end
- True
-
-
- True
- False
- 0
- in
-
-
- True
- False
-
-
- True
- False
- 5
- 5
- 5
- 5
- vertical
-
-
- True
- False
- 5
- 5
- 5
- 5
- 5
- 5
-
-
- True
- True
- False
- center
-
-
- True
- True
- 0
-
-
-
-
- More
- True
- True
- True
- True
-
-
- False
- True
- 1
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
-
-
- True
- False
-
-
- True
- False
- vertical
-
-
- True
- False
- True
- natural
- adjustment1
- natural
- UTF-8
- True
- False
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- vertical
- adjustment1
- True
- False
- 1
- 2
-
-
- False
- True
- 1
-
-
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
-
-
- True
- False
-
-
-
-
-
-
-
True
False
@@ -280,16 +119,6 @@
False
dialog-information-symbolic
-
- True
- False
- user-trash-symbolic
-
-
- True
- False
- dialog-information-symbolic
-
True
False
@@ -300,26 +129,6 @@
False
com.ublinux.libublsettingsui-gtk3.sync-symbolic
-
- True
- False
- com.ublinux.libublsettingsui-gtk3.sync-symbolic
-
-
- True
- False
- go-bottom-symbolic
-
-
- True
- False
- user-trash-symbolic
-
-
- True
- False
- go-bottom-symbolic
-
@@ -338,18 +147,28 @@
-
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
@@ -426,7 +245,6 @@
False
0
- - Default
- Off
- On
@@ -467,7 +285,6 @@
False
0
- - Default
- Off
- fbdev
@@ -521,7 +338,6 @@
False
0
- - Default
- Switch nouveau and radeon off
- Switch nouveau off
- Switch radeon off
@@ -564,7 +380,6 @@
False
0
- - Default
- Off
- fbdev
@@ -664,7 +479,6 @@
False
0
- - Default
- Off
- On
@@ -730,7 +544,6 @@
False
0
- - Default
- Automatic DPI
- 96 DPI - 100%
- 144 DPI - 150% (for 2K)
@@ -797,7 +610,6 @@
False
0
- - Default
- Off
- On
@@ -871,7 +683,6 @@
False
0
- - Default
- Off
- On
@@ -937,7 +748,6 @@
False
0
- - Default
- Off
- On
@@ -1057,410 +867,282 @@
-
+
True
False
+ 5
+ 5
+ 5
+ 5
+ vertical
-
+
True
- True
- 5
- 5
- 5
- 5
- 5
- 5
+ False
True
False
- 5
- 5
- 5
- 5
- 5
vertical
5
-
-
- True
- True
- external
-
-
- True
- True
- 5
- liststore6
- 1
- vertical
- True
- 4
-
-
-
-
-
- Installed
- descending
- 0
-
-
-
- 0
-
-
-
-
-
-
- Package
-
-
-
- 1
-
-
-
-
-
-
- Driver
-
-
-
- 3
-
-
-
-
-
-
- autosize
- Description
-
-
- word
- 150
-
-
- 4
-
-
-
-
-
-
- autosize
- Supported Devices
-
-
- word
- 220
-
-
- 5
-
-
-
-
-
-
-
-
- True
- True
- 0
-
-
True
False
- center
5
-
- Update
- True
- True
- True
- image3
-
-
- False
- True
- 0
-
-
-
-
- Установить
+
True
- False
- True
- True
- image9
+ False
+ Kernel:
False
True
- end
0
-
- Удалить
+
True
- False
- True
- True
- image11
+ False
+ 0
+
+ - Default (All installed)
+
- False
+ True
True
- end
1
-
-
- Подробнее
- True
- False
- True
- True
- image10
-
-
- False
- True
- end
- 2
-
-
False
True
- 1
+ 0
-
-
-
-
- True
- False
- Driver Modules
-
-
- False
-
-
-
-
- True
- False
- 5
- 5
- 5
- 5
- 5
- vertical
- 5
-
+
True
- True
- external
+ False
+ 5
-
+
True
- True
- 5
- liststore1
- 0
- vertical
- True
- 4
-
-
-
+ False
+ vertical
+ 5
-
- Installed
-
-
-
- 0
-
-
+
+ True
+ True
+ True
+ Update
+ image3
+
+
+ False
+ True
+ 0
+
-
- Package
-
-
- word
- 175
-
-
- 2
-
-
+
+ True
+ False
+ True
+ True
+ Driver information
+ image10
+
+
+ False
+ True
+ 2
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
-
- Driver
-
-
-
- 3
-
+
+ True
+ True
+ liststore1
+
+
-
-
-
-
- autosize
- Description
-
- word
- 150
+
+ fixed
+ 160
+ Installed
-
- 4
-
+
+
+
+
+ False
+ True
+ 0
+
-
- autosize
- Supported Devices
+
+ True
+ True
+ external
-
- word
- 220
+
+ True
+ True
+ liststore6
+ 1
+ both
+ True
+ 4
+
+
+
+
+
+ fixed
+ 80
+ Module
+
+
+
+ 9
+ 0
+
+
+
+
+
+
+ 80
+ Package
+ descending
+ 0
+
+
+
+ 10
+ 1
+
+
+
+
+
+
+ Kernel
+
+
+
+ 2
+
+
+
+
+
+
+ Driver
+
+
+
+ 3
+
+
+
+
+
+
+ Description
+
+
+ word
+ 150
+
+
+ 4
+
+
+
+
+
+
+ autosize
+ Supported Devices
+
+
+ word
+ 220
+
+
+ 5
+
+
+
+
-
- 5
-
+
+
+ True
+ True
+ 1
+
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- center
- 5
-
-
- Update
- True
- True
- True
- image4
-
-
- False
- True
- 0
-
-
-
-
- Установить
- True
- False
- True
- True
- image6
-
-
- False
- True
- end
- 0
-
-
-
-
- Удалить
- True
- False
- True
- True
- image7
-
- False
+ True
True
- end
1
-
-
- Подробнее
- True
- False
- True
- True
- image12
-
-
- False
- True
- end
- 2
-
-
- False
+ True
True
1
+
- 1
-
-
-
-
- True
- False
- Drivers
-
-
- 1
- False
+ -1
-
- -1
+ True
+ True
+ 0
diff --git a/ubl-settings-video.pot b/ubl-settings-video.pot
index 6201f78..99b92f9 100644
--- a/ubl-settings-video.pot
+++ b/ubl-settings-video.pot
@@ -1,6 +1,6 @@
# Language translations for ubl-settings-video package.
# Copyright (C) 2022, UBTech LLC
-# This file is distributed under the same license as the ubl-settings-manager package.
+# This file is distributed under the same license as the ubl-settings-video package.
# UBLinux Team , 2022
#
#, fuzzy
@@ -17,26 +17,10 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: source/ubl-settings-video.h:30
+#: source/ubl-settings-video.h:26
msgid "https://wiki.ublinux.com"
msgstr ""
-#: source/ubl-settings-video.h:43
-msgid "Failed to load global configuration"
-msgstr ""
-
-#: source/ubl-settings-video.h:44
-msgid "Failed to load local configuration"
-msgstr ""
-
-#: source/ubl-settings-video.h:46
-msgid "Saving to global configuration Succeeded"
-msgstr ""
-
-#: source/ubl-settings-video.h:47
-msgid "Saving to local configuration Succeeded"
-msgstr ""
-
#: source/ubl-strings.h:1
msgid "Version:"
msgstr ""
@@ -478,238 +462,341 @@ msgid "Model"
msgstr ""
#: source/ubl-strings.h:122
-msgid "Kernel driver in use"
+msgid "Kernel:"
msgstr ""
#: source/ubl-strings.h:123
+msgid "Kernel"
+msgstr ""
+
+#: source/ubl-strings.h:124
+msgid "Module"
+msgstr ""
+
+#: source/ubl-strings.h:125
+msgid "Driver information"
+msgstr ""
+
+#: source/ubl-strings.h:126
+msgid "Kernel driver in use"
+msgstr ""
+
+#: source/ubl-strings.h:127
msgid "Kernel modules"
msgstr ""
-#: source/ubl-strings.h:124 source/ubl-strings.h:158
+#: source/ubl-strings.h:128
msgid "UBLinux package includes Intel driver and utilities"
msgstr ""
-#: source/ubl-strings.h:125 source/ubl-strings.h:157
+#: source/ubl-strings.h:129
msgid "UBLinux module includes AMD driver and utilities"
msgstr ""
-#: source/ubl-strings.h:126 source/ubl-strings.h:156
+#: source/ubl-strings.h:130
msgid "UBLinux package includes AMD Vulkan driver and utilities"
msgstr ""
-#: source/ubl-strings.h:128
+#: source/ubl-strings.h:132
msgid "Important field is empty"
msgstr ""
-#: source/ubl-strings.h:130
+#: source/ubl-strings.h:134
msgid "Load drivers from database"
msgstr ""
-#: source/ubl-strings.h:131
+#: source/ubl-strings.h:135
msgid "Choose driver automatically:"
msgstr ""
-#: source/ubl-strings.h:132
+#: source/ubl-strings.h:136
msgid "Free drivers:"
msgstr ""
-#: source/ubl-strings.h:133
+#: source/ubl-strings.h:137
msgid "Default"
msgstr ""
-#: source/ubl-strings.h:134
+#: source/ubl-strings.h:138
msgid "Switch nouveau and radeon off"
msgstr ""
-#: source/ubl-strings.h:135
+#: source/ubl-strings.h:139
msgid "Switch nouveau off"
msgstr ""
-#: source/ubl-strings.h:136
+#: source/ubl-strings.h:140
msgid "Switch radeon off"
msgstr ""
-#: source/ubl-strings.h:137
+#: source/ubl-strings.h:141
msgid "Switch free drvers on"
msgstr ""
-#: source/ubl-strings.h:138
+#: source/ubl-strings.h:142
msgid "Do not switch off display(-s) (DPMS global configuration):"
msgstr ""
-#: source/ubl-strings.h:139
+#: source/ubl-strings.h:143
msgid "Automatic DPI"
msgstr ""
-#: source/ubl-strings.h:140
+#: source/ubl-strings.h:144
msgid "144 DPI - 150% (for 2K)"
msgstr ""
-#: source/ubl-strings.h:141
+#: source/ubl-strings.h:145
msgid "192 DPI - 200% (for 4K)"
msgstr ""
-#: source/ubl-strings.h:142
+#: source/ubl-strings.h:146
msgid "Display DPI"
msgstr ""
-#: source/ubl-strings.h:143
+#: source/ubl-strings.h:147
msgid "discrete video only (AMD/ATI):"
msgstr ""
-#: source/ubl-strings.h:144
+#: source/ubl-strings.h:148
msgid "Driver Modules"
msgstr ""
-#: source/ubl-strings.h:145
+#: source/ubl-strings.h:149
msgid "Devices and Drivers"
msgstr ""
-#: source/ubl-strings.h:147
-msgid "UBLinux module includes NVIDIA 340xx driver and utilities"
-msgstr ""
-
-#: source/ubl-strings.h:148
-msgid "UBLinux package includes NVIDIA 340xx driver and utilities"
+#: source/ubl-strings.h:151
+msgid "X.org amdgpu video driver"
msgstr ""
-#: source/ubl-strings.h:149
-msgid "UBLinux module includes NVIDIA 390xx driver and utilities"
+#: source/ubl-strings.h:152
+msgid "X.org ati video driver"
msgstr ""
-#: source/ubl-strings.h:150
-msgid "UBLinux package includes NVIDIA 390xx driver and utilities"
+#: source/ubl-strings.h:153
+msgid "X.org dummy video driver"
msgstr ""
-#: source/ubl-strings.h:151
-msgid "UBLinux module includes NVIDIA 470xx driver and utilities"
+#: source/ubl-strings.h:154
+msgid "X.org framebuffer video driver"
msgstr ""
-#: source/ubl-strings.h:152
-msgid "UBLinux package includes NVIDIA 470xx driver and utilities"
+#: source/ubl-strings.h:155
+msgid "X.org Intel video driver"
msgstr ""
-#: source/ubl-strings.h:153
-msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
+#: source/ubl-strings.h:156
+msgid "X.org NVIDIA video driver"
msgstr ""
-#: source/ubl-strings.h:154
-msgid "UBLinux package includes NVIDIA 510xx driver and utilities"
+#: source/ubl-strings.h:157
+msgid "X.org X11 qxl video driver"
msgstr ""
-#: source/ubl-strings.h:155
-msgid "UBLinux package includes opensource driver NVIDIA"
+#: source/ubl-strings.h:158
+msgid "X.org SiS USB video driver"
msgstr ""
#: source/ubl-strings.h:159
-msgid "UBLinux package includes AMD opensource driver"
+msgid "X.org vesa video driver"
msgstr ""
#: source/ubl-strings.h:160
-msgid "UBLinux package includes ATI opensource driver"
+msgid "X.org vmware video driver"
msgstr ""
#: source/ubl-strings.h:161
-msgid "UBLinux package includes dummy driver"
+msgid "X.org 3dfx Voodoo1/Voodoo2 2D video driver"
msgstr ""
#: source/ubl-strings.h:162
-msgid "UBLinux package includes framebuffer video driver"
+msgid "X.Org Openchrome drivers"
msgstr ""
#: source/ubl-strings.h:163
-msgid "UBLinux package includes VIA video driver"
+msgid "X.org tdfx video driver"
msgstr ""
#: source/ubl-strings.h:164
-msgid "UBLinux package includes SiS video driver"
+msgid "X.org ati Rage128 video driver"
msgstr ""
#: source/ubl-strings.h:165
-msgid "UBLinux package includes vesa video driver"
+msgid "X.org mach64 video driver"
msgstr ""
#: source/ubl-strings.h:166
-msgid "UBLinux package includes VMWare video driver"
+msgid "X.org siliconmotion video driver"
msgstr ""
#: source/ubl-strings.h:167
-msgid "UBLinux package includes Voodoo video driver"
+msgid "X.org S3 Virge video driver"
msgstr ""
#: source/ubl-strings.h:168
-msgid "UBLinux package includes qxl video driver"
+msgid "X.org S3 video driver"
+msgstr ""
+
+#: source/ubl-strings.h:169
+msgid "X.org Rendition video driver"
msgstr ""
#: source/ubl-strings.h:170
-msgid ""
-"Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video "
-"cards"
+msgid "X.org neomagic video driver"
msgstr ""
#: source/ubl-strings.h:171
-msgid "Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards"
+msgid "X.org mga video driver"
msgstr ""
#: source/ubl-strings.h:172
-msgid ""
-"Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, "
-"Quadro, Quadro RTX, NVIDIA RTX series video cards"
+msgid "X.org Intel i740 video driver"
msgstr ""
#: source/ubl-strings.h:173
-msgid "Open source nvidia graphics card driver"
+msgid "X.org Number 9 I128 video driver"
msgstr ""
#: source/ubl-strings.h:174
-msgid ""
-"Driver for AMD Radeon R9 285/290/290X, Radeon R9 360/380/380X/390/390X, "
-"Radeon R9 Fury/Fury X/Nano, Radeon RX 400/500, Radeon RX Vega, Radeon VII, "
-"Radeon RX 5000/6000/7000 series video cards"
+msgid "X.org dummy video driver with an allocated vt"
msgstr ""
#: source/ubl-strings.h:175
-msgid ""
-"Driver for video cards Intel i810/i830/i915/945G/G965+ and newer, except GMA "
-"3600"
+msgid "Cirrus Logic video driver for the Xorg X server"
msgstr ""
#: source/ubl-strings.h:176
-msgid "Opensource X.org amdgpu video driver for AMD graphics card"
+msgid "X.org Chips and Technologies video driver"
msgstr ""
#: source/ubl-strings.h:177
-msgid "Opensource X.org ati video driver for ATI graphics card"
+msgid "AMD Vulkan driver and utilities"
msgstr ""
#: source/ubl-strings.h:178
-msgid "X.org dummy video driver"
+msgid "NVIDIA 390xx driver and utilities"
msgstr ""
#: source/ubl-strings.h:179
-msgid "X.org framebuffer video driver"
+msgid "NVIDIA 470xx driver and utilities"
msgstr ""
#: source/ubl-strings.h:180
-msgid "Open Source X driver for VIA IGPs"
-msgstr ""
-
-#: source/ubl-strings.h:181
-msgid "X.org SiS USB video driver"
+msgid "NVIDIA 550xx driver and utilities"
msgstr ""
#: source/ubl-strings.h:182
-msgid "X.org vesa video driver"
+msgid "Driver for Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600"
msgstr ""
#: source/ubl-strings.h:183
-msgid "X.org vmware video driver"
+msgid ""
+"Driver for Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, "
+"LynxEM+, Lynx3DM, Cougar3DR, MSOC)"
msgstr ""
#: source/ubl-strings.h:184
-msgid "X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+msgid ""
+"Driver for S3 based video cards (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, ViRGE "
+"GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)"
msgstr ""
#: source/ubl-strings.h:185
-msgid "X.org X11 qxl video driver"
+msgid ""
+"Driver for S3 based video cards (Trio32, Trio64, Trio64V+, Aurora64V+,"
+"Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)"
+msgstr ""
+
+#: source/ubl-strings.h:186
+msgid "Driver for Rendition/Micron based video card (V1000, V2100, V2200)"
+msgstr ""
+
+#: source/ubl-strings.h:187
+msgid ""
+"Driver for the Neomagic graphics chipsets (MagicGraph 128, 128V, 128ZV, "
+"128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)"
+msgstr ""
+
+#: source/ubl-strings.h:188
+msgid ""
+"Driver for Matrox video cards (MGA2064W, MGA1064SG, MGA2164W, G100, G200, "
+"G400, G450, G550)"
+msgstr ""
+
+#: source/ubl-strings.h:189
+msgid "Driver for Intel i740 video cards"
+msgstr ""
+
+#: source/ubl-strings.h:190
+msgid "Driver for Cirrus Logic video chips"
+msgstr ""
+
+#: source/ubl-strings.h:191
+msgid ""
+"Driver for Chips and Technologies video processors (ct65520, ct65525, "
+"ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, "
+"ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)"
+msgstr ""
+
+#: source/ubl-strings.h:192
+msgid ""
+"Driver for AMD Radeon RX 7000, 6000, 5000 Series, Radeon Pro W5000 Series"
+msgstr ""
+
+#: source/ubl-strings.h:193
+msgid ""
+"Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, "
+"500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, "
+"Quadro Sync, Quadro SDI, NVS series video cards"
+msgstr ""
+
+#: source/ubl-strings.h:194
+msgid ""
+"Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 "
+"Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID "
+"series video cards"
+msgstr ""
+
+#: source/ubl-strings.h:195
+msgid ""
+"Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, "
+"16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro "
+"RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards"
+msgstr ""
+
+#: source/ubl-strings.h:197
+msgid "Database files must be updated"
+msgstr ""
+
+#: source/ubl-strings.h:199
+msgid "Warning: Couldn't find any supported kernel version"
+msgstr ""
+
+#: source/ubl-strings.h:201
+msgid "Default (All installed)"
+msgstr ""
+
+#: source/ubl-strings.h:202
+msgid "Driver installation has failed"
+msgstr ""
+
+#: source/ubl-strings.h:203
+msgid "Operation has failed"
+msgstr ""
+
+#: source/ubl-strings.h:205
+msgid "Are you sure want to install driver "
+msgstr ""
+
+#: source/ubl-strings.h:206
+msgid "Are you sure want to remove driver "
+msgstr ""
+
+#: source/ubl-strings.h:207
+msgid "Attention!"
+msgstr ""
+
+#: source/ubl-strings.h:207
+msgid ""
+"If you work in sandbox mode, you must install the package with the module!"
msgstr ""
diff --git a/ubl-settings-video_ru.po b/ubl-settings-video_ru.po
index 09e927d..a1d2d54 100644
--- a/ubl-settings-video_ru.po
+++ b/ubl-settings-video_ru.po
@@ -1,6 +1,6 @@
-# Russian translations for ubl-settings-manager package.
+# Russian translations for ubl-settings-video package.
# Copyright (C) 2022, UBTech LLC
-# This file is distributed under the same license as the ubl-settings-manager package.
+# This file is distributed under the same license as the ubl-settings-video package.
# UBLinux Team , 2022
#
#, fuzzy
@@ -17,26 +17,10 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: source/ubl-settings-video.h:30
+#: source/ubl-settings-video.h:26
msgid "https://wiki.ublinux.com"
msgstr "https://wiki.ublinux.ru"
-#: source/ubl-settings-video.h:43
-msgid "Failed to load global configuration"
-msgstr "Ошибка загрузки глобальной конфигурации"
-
-#: source/ubl-settings-video.h:44
-msgid "Failed to load local configuration"
-msgstr "Ошибка загрузки локальной конфигурации"
-
-#: source/ubl-settings-video.h:46
-msgid "Saving to global configuration Succeeded"
-msgstr "Успешное сохранение глобальной конфигурации"
-
-#: source/ubl-settings-video.h:47
-msgid "Saving to local configuration Succeeded"
-msgstr "Успешно записана локальная конфигурация"
-
#: source/ubl-strings.h:1
msgid "Version:"
msgstr "Версия:"
@@ -484,252 +468,372 @@ msgid "Model"
msgstr "Модель"
#: source/ubl-strings.h:122
+msgid "Kernel:"
+msgstr "Ядро:"
+
+#: source/ubl-strings.h:123
+msgid "Kernel"
+msgstr "Ядро"
+
+#: source/ubl-strings.h:124
+msgid "Module"
+msgstr "Модуль"
+
+#: source/ubl-strings.h:125
+msgid "Driver information"
+msgstr "Информация о драйвере"
+
+#: source/ubl-strings.h:126
msgid "Kernel driver in use"
msgstr "Используемый драйвер ядра"
-#: source/ubl-strings.h:123
+#: source/ubl-strings.h:127
msgid "Kernel modules"
msgstr "Модули ядра"
-#: source/ubl-strings.h:124 source/ubl-strings.h:158
+#: source/ubl-strings.h:128
msgid "UBLinux package includes Intel driver and utilities"
msgstr "Пакет с драйвером и утилитами Intel"
-#: source/ubl-strings.h:125 source/ubl-strings.h:157
+#: source/ubl-strings.h:129
msgid "UBLinux module includes AMD driver and utilities"
msgstr "Пакет с драйвером и утилитами AMD"
-#: source/ubl-strings.h:126 source/ubl-strings.h:156
+#: source/ubl-strings.h:130
msgid "UBLinux package includes AMD Vulkan driver and utilities"
msgstr "Пакет с драйвером и утилитами AMD с поддержкой Vulkan"
-#: source/ubl-strings.h:128
+#: source/ubl-strings.h:132
msgid "Important field is empty"
msgstr "Пустое важное поле"
-#: source/ubl-strings.h:130
+#: source/ubl-strings.h:134
msgid "Load drivers from database"
msgstr "Загрузить список доступных драйверов"
-#: source/ubl-strings.h:131
+#: source/ubl-strings.h:135
msgid "Choose driver automatically:"
msgstr "Автоматический выбор драйвера:"
-#: source/ubl-strings.h:132
+#: source/ubl-strings.h:136
msgid "Free drivers:"
msgstr "Свободные драйверы"
-#: source/ubl-strings.h:133
+#: source/ubl-strings.h:137
msgid "Default"
msgstr "По умолчанию"
-#: source/ubl-strings.h:134
+#: source/ubl-strings.h:138
msgid "Switch nouveau and radeon off"
msgstr "Отключить nouveau и radeon"
-#: source/ubl-strings.h:135
+#: source/ubl-strings.h:139
msgid "Switch nouveau off"
msgstr "Отключить nouveau"
-#: source/ubl-strings.h:136
+#: source/ubl-strings.h:140
msgid "Switch radeon off"
msgstr "Отключить radeon"
-#: source/ubl-strings.h:137
+#: source/ubl-strings.h:141
msgid "Switch free drvers on"
msgstr "Включить свободные драйвера"
-#: source/ubl-strings.h:138
+#: source/ubl-strings.h:142
msgid "Do not switch off display(-s) (DPMS global configuration):"
msgstr "Не выключать дисплей(-и) (глобальная настройка DPMS):"
-#: source/ubl-strings.h:139
+#: source/ubl-strings.h:143
msgid "Automatic DPI"
msgstr "Автоматический выбор DPI"
-#: source/ubl-strings.h:140
+#: source/ubl-strings.h:144
msgid "144 DPI - 150% (for 2K)"
msgstr "144 DPI - 150% (для 2K)"
-#: source/ubl-strings.h:141
+#: source/ubl-strings.h:145
msgid "192 DPI - 200% (for 4K)"
msgstr "192 DPI - 150% (для 4K)"
-#: source/ubl-strings.h:142
+#: source/ubl-strings.h:146
msgid "Display DPI"
msgstr "Масштабирование вывода изображения"
-#: source/ubl-strings.h:143
+#: source/ubl-strings.h:147
msgid "discrete video only (AMD/ATI):"
msgstr "Только дискретное видео (AMD/ATI):"
-#: source/ubl-strings.h:144
+#: source/ubl-strings.h:148
msgid "Driver Modules"
msgstr "Модули драйвера"
-#: source/ubl-strings.h:145
+#: source/ubl-strings.h:149
msgid "Devices and Drivers"
msgstr "Устройства и драйвера"
-#: source/ubl-strings.h:147
-msgid "UBLinux module includes NVIDIA 340xx driver and utilities"
-msgstr "Пакет с модулем драйвера и утилитами NVIDIA 340xx"
-
-#: source/ubl-strings.h:148
-msgid "UBLinux package includes NVIDIA 340xx driver and utilities"
-msgstr "Пакет с драйвером NVIDIA 340xx"
-
-#: source/ubl-strings.h:149
-msgid "UBLinux module includes NVIDIA 390xx driver and utilities"
-msgstr "Пакет с модулем драйвера и утилитами NVIDIA 390xx"
-
-#: source/ubl-strings.h:150
-msgid "UBLinux package includes NVIDIA 390xx driver and utilities"
-msgstr "Пакет с драйвером NVIDIA 390xx"
-
#: source/ubl-strings.h:151
-msgid "UBLinux module includes NVIDIA 470xx driver and utilities"
-msgstr "Пакет с модулем драйвера и утилитами NVIDIA 470xx"
+#, fuzzy
+msgid "X.org amdgpu video driver"
+msgstr "X.org видеодрайвер amdgpu"
#: source/ubl-strings.h:152
-msgid "UBLinux package includes NVIDIA 470xx driver and utilities"
-msgstr "Пакет с драйвером NVIDIA 470xx"
+#, fuzzy
+msgid "X.org ati video driver"
+msgstr "X.org видеодрайвер ati"
#: source/ubl-strings.h:153
-msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
-msgstr "Пакет с модулем драйвера и утилитами NVIDIA 510xx"
+msgid "X.org dummy video driver"
+msgstr "X.org видеодрайвер dummy"
#: source/ubl-strings.h:154
-msgid "UBLinux package includes NVIDIA 510xx driver and utilities"
-msgstr "Пакет с драйвером NVIDIA 510xx"
+msgid "X.org framebuffer video driver"
+msgstr "X.org видеодрайвер framebuffer"
#: source/ubl-strings.h:155
-msgid "UBLinux package includes opensource driver NVIDIA"
-msgstr "Пакет с драйвером NVIDIA с открытым исходным кодом"
+msgid "X.org Intel video driver"
+msgstr "X.org видеодрайвер Intel"
+
+#: source/ubl-strings.h:156
+msgid "X.org NVIDIA video driver"
+msgstr "X.org видеодрайвер NVIDIA"
+
+#: source/ubl-strings.h:157
+msgid "X.org X11 qxl video driver"
+msgstr "Видеодрайвер X.org X11 qxl"
+
+#: source/ubl-strings.h:158
+msgid "X.org SiS USB video driver"
+msgstr "USB-видеодрайвер X.org SiS"
#: source/ubl-strings.h:159
-msgid "UBLinux package includes AMD opensource driver"
-msgstr "Пакет с драйвером AMD с открытым исходным кодом"
+msgid "X.org vesa video driver"
+msgstr "Видеодрайвер X.org Vesa"
#: source/ubl-strings.h:160
-msgid "UBLinux package includes ATI opensource driver"
-msgstr "Пакет с драйвером ATI с открытым исходным кодом"
+msgid "X.org vmware video driver"
+msgstr "Видеодрайвер X.org vmware"
#: source/ubl-strings.h:161
-msgid "UBLinux package includes dummy driver"
-msgstr "Пакет UBLinux с фиктивным драйвером"
+msgid "X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+msgstr "X.org 3dfx Voodoo1/Voodoo2 2D-видеодрайвер"
#: source/ubl-strings.h:162
-msgid "UBLinux package includes framebuffer video driver"
-msgstr "Пакет UBLinux с видеодрайвером кадрового буфера."
+msgid "X.Org Openchrome drivers"
+msgstr "Драйверы X.Org OpenChrome"
#: source/ubl-strings.h:163
-msgid "UBLinux package includes VIA video driver"
-msgstr "Пакет с видеодрайвером VIA"
+msgid "X.org tdfx video driver"
+msgstr "Видеодрайвер X.org tdfx"
#: source/ubl-strings.h:164
-msgid "UBLinux package includes SiS video driver"
-msgstr "Пакет с видеодрайвером SiS"
+msgid "X.org ati Rage128 video driver"
+msgstr "Видеодрайвер X.org ATI Rage128"
#: source/ubl-strings.h:165
-msgid "UBLinux package includes vesa video driver"
-msgstr "Пакет с видеодрайвером vesa"
+msgid "X.org mach64 video driver"
+msgstr "Видеодрайвер X.org mach64"
#: source/ubl-strings.h:166
-msgid "UBLinux package includes VMWare video driver"
-msgstr "Пакет с видеодрайвером VMWare"
+msgid "X.org siliconmotion video driver"
+msgstr "Видеодрайвер X.org Silicon Motion"
#: source/ubl-strings.h:167
-msgid "UBLinux package includes Voodoo video driver"
-msgstr "Пакет с видеодрайвером Voodoo"
+msgid "X.org S3 Virge video driver"
+msgstr "Видеодрайвер X.org S3 Virge"
#: source/ubl-strings.h:168
-msgid "UBLinux package includes qxl video driver"
-msgstr "Пакет с видеодрайвером qxl"
+msgid "X.org S3 video driver"
+msgstr "Видеодрайвер X.org S3"
+
+#: source/ubl-strings.h:169
+msgid "X.org Rendition video driver"
+msgstr "Видеодрайвер X.org Rendition"
#: source/ubl-strings.h:170
-msgid ""
-"Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video "
-"cards"
-msgstr ""
-"Драйвер для видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, "
-"7XX"
+msgid "X.org neomagic video driver"
+msgstr "Видеодрайвер X.org Neomagic"
#: source/ubl-strings.h:171
-msgid "Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards"
-msgstr "Драйвер для видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX"
+msgid "X.org mga video driver"
+msgstr "Видеодрайвер X.org Matrox"
#: source/ubl-strings.h:172
-msgid ""
-"Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, "
-"Quadro, Quadro RTX, NVIDIA RTX series video cards"
-msgstr ""
-"Драйвер для видеокарт серии nVidia NVS, Quadro Sync, Quadro NVS, Quadro "
-"Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX"
+msgid "X.org Intel i740 video driver"
+msgstr "Видеодрайвер X.org Intel i740"
#: source/ubl-strings.h:173
-msgid "Open source nvidia graphics card driver"
-msgstr "Драйвер видеокарты nvidia с открытым исходным кодом"
+msgid "X.org Number 9 I128 video driver"
+msgstr "Видеодрайвер X.org Number 9 I128"
#: source/ubl-strings.h:174
-msgid ""
-"Driver for AMD Radeon R9 285/290/290X, Radeon R9 360/380/380X/390/390X, "
-"Radeon R9 Fury/Fury X/Nano, Radeon RX 400/500, Radeon RX Vega, Radeon VII, "
-"Radeon RX 5000/6000/7000 series video cards"
-msgstr ""
-"Драйвер для AMD Radeon R9 285/290/290X, Radeon R9 360/380/380X/390/390X, "
-"Radeon R9 Fury/Fury X/Nano, Radeon RX 400/500, Radeon RX Vega, Radeon VII, "
-"Radeon RX 5000/6000 Видеокарты серии /7000"
+msgid "X.org dummy video driver with an allocated vt"
+msgstr "Фиктивный видеодрайвер X.org"
#: source/ubl-strings.h:175
-msgid ""
-"Driver for video cards Intel i810/i830/i915/945G/G965+ and newer, except GMA "
-"3600"
-msgstr ""
-"Драйвер для видеокарт Intel i810/i830/i915/945G/G965+ и новее, кроме GMA 3600"
+msgid "Cirrus Logic video driver for the Xorg X server"
+msgstr "Видеодрайвер Cirrus Logic для X-сервера"
#: source/ubl-strings.h:176
-msgid "Opensource X.org amdgpu video driver for AMD graphics card"
-msgstr "Видеодрайвер amdgpu с открытым исходным кодом X.org для видеокарты AMD"
+msgid "X.org Chips and Technologies video driver"
+msgstr "Видеодрайвер X.org Chips and Technologies"
#: source/ubl-strings.h:177
-msgid "Opensource X.org ati video driver for ATI graphics card"
-msgstr "«Видеодрайвер ati с открытым исходным кодом X.org для видеокарты ATI"
+msgid "AMD Vulkan driver and utilities"
+msgstr "Драйвер и утилиты AMD Vulkan"
#: source/ubl-strings.h:178
-msgid "X.org dummy video driver"
-msgstr "Фиктивный видеодрайвер X.org"
+msgid "NVIDIA 390xx driver and utilities"
+msgstr "Пакет с драйвером и утилитами NVIDIA 390xx"
#: source/ubl-strings.h:179
-msgid "X.org framebuffer video driver"
-msgstr "Видеодрайвер X.org для фреймбуфера"
+msgid "NVIDIA 470xx driver and utilities"
+msgstr "Пакет с драйвером NVIDIA 470xx"
#: source/ubl-strings.h:180
-msgid "Open Source X driver for VIA IGPs"
-msgstr "Драйвер X с открытым исходным кодом для VIA IGP"
-
-#: source/ubl-strings.h:181
-msgid "X.org SiS USB video driver"
-msgstr "USB-видеодрайвер X.org SiS"
+msgid "NVIDIA 550xx driver and utilities"
+msgstr "Пакет с драйвером и утилитами NVIDIA 550xx"
#: source/ubl-strings.h:182
-msgid "X.org vesa video driver"
-msgstr "Видеодрайвер X.org Vesa"
+msgid "Driver for Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600"
+msgstr ""
+"Драйвер для видеокарт Intel i810/i830/i915/945G/G965+ и новее, кроме GMA 3600"
#: source/ubl-strings.h:183
-msgid "X.org vmware video driver"
-msgstr "Видеодрайвер X.org vmware"
+msgid ""
+"Driver for Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, "
+"LynxEM+, Lynx3DM, Cougar3DR, MSOC)"
+msgstr ""
+"Драйвер для Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, "
+"LynxEM+, Lynx3DM, Cougar3DR, MSOC)"
#: source/ubl-strings.h:184
-msgid "X.org 3dfx Voodoo1/Voodoo2 2D video driver"
-msgstr "X.org 3dfx Voodoo1/Voodoo2 2D-видеодрайвер"
+msgid ""
+"Driver for S3 based video cards (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, ViRGE "
+"GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)"
+msgstr ""
+"Драйвер для видеокарт на основе S3 (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, "
+"ViRGE GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)"
#: source/ubl-strings.h:185
-msgid "X.org X11 qxl video driver"
-msgstr "Видеодрайвер X.org X11 qxl"
+msgid ""
+"Driver for S3 based video cards (Trio32, Trio64, Trio64V+, Aurora64V+,"
+"Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)"
+msgstr ""
+"Драйвер для видеокарт на основе S3 (Trio32, Trio64, Trio64V+, Aurora64V+,"
+"Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)"
-#~ msgid "Discrete video only (AMD/ATI)"
-#~ msgstr "Только дискретное видео (AMD/ATI)"
+#: source/ubl-strings.h:186
+msgid "Driver for Rendition/Micron based video card (V1000, V2100, V2200)"
+msgstr "Драйвер для видеокарт на основе Rendition/Micron (V1000, V2100, V2200)"
+
+#: source/ubl-strings.h:187
+msgid ""
+"Driver for the Neomagic graphics chipsets (MagicGraph 128, 128V, 128ZV, "
+"128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)"
+msgstr ""
+"Драйвер для графических чипсетов NeoMagic (MagicGraph 128, 128V, 128ZV, "
+"128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)"
+
+#: source/ubl-strings.h:188
+msgid ""
+"Driver for Matrox video cards (MGA2064W, MGA1064SG, MGA2164W, G100, G200, "
+"G400, G450, G550)"
+msgstr ""
+"Драйвер для видеокарт Matrox (MGA2064W, MGA1064SG, MGA2164W, G100, G200, "
+"G400, G450, G550)"
+
+#: source/ubl-strings.h:189
+msgid "Driver for Intel i740 video cards"
+msgstr "Драйвер для видеокарт Intel i740"
+
+#: source/ubl-strings.h:190
+msgid "Driver for Cirrus Logic video chips"
+msgstr "Драйвер для видеочипов Cirrus Logic"
+
+#: source/ubl-strings.h:191
+msgid ""
+"Driver for Chips and Technologies video processors (ct65520, ct65525, "
+"ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, "
+"ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)"
+msgstr ""
+"Драйвер для видеопроцессоров Chips and Technologies (ct65520, ct65525, "
+"ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, "
+"ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)"
+
+#: source/ubl-strings.h:192
+msgid ""
+"Driver for AMD Radeon RX 7000, 6000, 5000 Series, Radeon Pro W5000 Series"
+msgstr ""
+"Драйвер для видеокарт AMD Radeon RX 7000, 6000, 5000 Series, Radeon Pro "
+"W5000 Series"
+
+#: source/ubl-strings.h:193
+msgid ""
+"Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, "
+"500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, "
+"Quadro Sync, Quadro SDI, NVS series video cards"
+msgstr ""
+"Драйвер для видеокарт NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, "
+"600, 600M, 500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, "
+"Quadro NVS, Quadro Sync, Quadro SDI и NVS"
+
+#: source/ubl-strings.h:194
+msgid ""
+"Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 "
+"Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID "
+"series video cards"
+msgstr ""
+"Драйвер для видеокарт NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, "
+"900, 700, 600 Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS "
+"и GRID"
+
+#: source/ubl-strings.h:195
+msgid ""
+"Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, "
+"16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro "
+"RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards"
+msgstr ""
+"Драйвер для видеокарт NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, "
+"GeForce 10, 16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, "
+"RTX, Quadro RTX, Quadro, Quadro Blade/Embedded, Quadro NVS и NVS"
+
+#: source/ubl-strings.h:197
+msgid "Database files must be updated"
+msgstr "Базы данных репозитория должны быть обновлены"
+
+#: source/ubl-strings.h:199
+msgid "Warning: Couldn't find any supported kernel version"
+msgstr "Предупреждение: Поддерживаемые версии ядра не найдены"
+
+#: source/ubl-strings.h:201
+msgid "Default (All installed)"
+msgstr "По умолчанию (все установленные)"
+
+#: source/ubl-strings.h:202
+msgid "Driver installation has failed"
+msgstr "Установка драйвера завершена с ошибкой"
+
+#: source/ubl-strings.h:203
+msgid "Operation has failed"
+msgstr "Операция завершена с ошибкой"
+
+#: source/ubl-strings.h:205
+msgid "Are you sure want to install driver "
+msgstr "Вы уверены что хотите установить драйвер "
+
+#: source/ubl-strings.h:206
+msgid "Are you sure want to remove driver "
+msgstr "Вы уверены что хотите удалить драйвер "
+
+#: source/ubl-strings.h:207
+msgid "Attention!"
+msgstr "Внимание!"
+
+#: source/ubl-strings.h:207
+msgid ""
+"If you work in sandbox mode, you must install the package with the module!"
+msgstr ""
+"Если вы работаете в режиме песочницы необходимо установить пакет с модулем!"
#~ msgid "Driver modules"
#~ msgstr "Модули драйвера"
diff --git a/video-drivers.csv b/video-drivers.csv
index fe947ab..b3859a9 100644
--- a/video-drivers.csv
+++ b/video-drivers.csv
@@ -1,22 +1,37 @@
-OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT
-2204;ubm-linux515-nvidia-470xx;;linux515-nvidia-470xx;UBLinux module include NVIDIA 470xx driver for linux;Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards
-2204;ubm-linux515-nvidia-390xx;;linux515-nvidia-390xx;UBLinux module includes NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
-2204;;nvidia-390xx-dkms;nvidia-390;UBLinux package includes NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
-2204;ubm-linux61-nvidia-470xx;;linux61-nvidia-470xx;UBLinux module includes NVIDIA 470xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards
-2204;;nvidia-470xx-dkms;nvidia-470;UBLinux package includes NVIDIA 470xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards
-2204;;nvidia-dkms;nvidia;UBLinux package includes NVIDIA last driver for linux;Driver for nVidia 8XXX, 9XXX, 1X, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX, Quadro RTX, NVS, Quadro NVS, NVIDIA RTX series video cards
-2204;;nvidia-open-dkms;nvidia-open;UBLinux package includes NVIDIA open kernel modules;Driver for nVidia 16XX, 20XX series video cards
-2204;ubm-linux61-nvidia-390xx;;linux61-nvidia-390xx;UBLinux module includes NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
-2204;;xf86-video-nouveau;video-nouveau;UBLinux package includes opensource driver NVIDIA;Open source nvidia graphics card driver
-2204;ubm-linux515-nvidia;;linux515-nvidia;UBLinux module include NVIDIA last driver for linux 5.15;Driver for nVidia 8XXX, 9XXX, 1X, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX, Quadro RTX, NVS, Quadro NVS, NVIDIA RTX series video cards
-2204;ubm-linux61-nvidia;;linux61-nvidia;UBLinux module include NVIDIA last driver for linux 6.1;Driver for nVidia 8XXX, 9XXX, 1X, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX, Quadro RTX, NVS, Quadro NVS, NVIDIA RTX series video cards
-2204;;xf86-video-intel;video-intel;UBLinux package includes Intel driver and utilities;Driver for video cards Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600
-2204;;xf86-video-amdgpu;video-amdgpu;UBLinux package includes AMD opensource driver;Opensource X.org amdgpu video driver for AMD graphics card
-2204;;xf86-video-ati;video-ati;UBLinux package includes ATI opensource driver;Opensource X.org ati video driver for ATI graphics card
-2204;;xf86-video-dummy;video-dummy;UBLinux package includes dummy driver;X.org dummy video driver
-2204;;xf86-video-fbdev;video-fbdev;UBLinux package includes framebuffer video driver;X.org framebuffer video driver
-2204;;xf86-video-sisusb;video-sisusb;UBLinux package includes SiS video driver;X.org SiS USB video driver
-2204;;xf86-video-vesa;video-vesa;UBLinux package includes vesa video driver;X.org vesa video driver
-2204;;xf86-video-vmware;video-vmware;UBLinux package includes VMWare video driver;X.org vmware video driver
-2204;;xf86-video-voodoo;video-voodoo;UBLinux package includes Voodoo video driver;X.org 3dfx Voodoo1/Voodoo2 2D video driver
-2204;;xf86-video-qxl;video-qxl;UBLinux package includes qxl video driver;X.org X11 qxl video driver
\ No newline at end of file
+KERNEL_PACKAGE;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT
+;;xf86-video-amdgpu;video-amdgpu;X.org amdgpu video driver;AMD graphics
+;;xf86-video-ati;video-ati;X.org ati video driver;ATI graphics
+;;xf86-video-dummy;video-dummy;X.org dummy video driver;Dummy video
+;;xf86-video-fbdev;video-fbdev;X.org framebuffer video driver;Framebuffer
+;;xf86-video-intel;video-intel;X.org Intel video driver;Driver for Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600
+;;xf86-video-nouveau;video-nouveau;X.org NVIDIA video driver;NVIDIA graphics
+;;xf86-video-qxl;video-qxl;X.org X11 qxl video driver;QXL
+;;xf86-video-sisusb;video-sisusb;X.org SiS USB video driver;SiS USB
+;;xf86-video-vesa;video-vesa;X.org vesa video driver;Vesa
+;;xf86-video-vmware;video-vmware;X.org vmware video driver;VMware
+;;xf86-video-voodoo;video-voodoo;X.org 3dfx Voodoo1/Voodoo2 2D video driver;3dfx Voodoo1/Voodoo2 2D
+;;xf86-video-openchrome;video-openchrome;X.Org Openchrome drivers;Openchrome
+;;xf86-video-tdfx;video-tdfx;X.org tdfx video driver;TDFX
+;;xf86-video-r128;video-r128;X.org ati Rage128 video driver;ATI Rage128
+;;xf86-video-mach64;video-mach64;X.org mach64 video driver;ATI Mach64
+;;xf86-video-siliconmotion;video-siliconmotion;X.org siliconmotion video driver;Driver for Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, LynxEM+, Lynx3DM, Cougar3DR, MSOC)
+;;xf86-video-s3virge;video-s3virge;X.org S3 Virge video driver;Driver for S3 based video cards (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, ViRGE GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)
+;;xf86-video-s3;video-s3virge;X.org S3 video driver;Driver for S3 based video cards (Trio32, Trio64, Trio64V+, Aurora64V+,Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)
+;;xf86-video-rendition;video-rendition;X.org Rendition video driver;Driver for Rendition/Micron based video card (V1000, V2100, V2200)
+;;xf86-video-neomagic;video-neomagic;X.org neomagic video driver;Driver for the Neomagic graphics chipsets (MagicGraph 128, 128V, 128ZV, 128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)
+;;xf86-video-mga;video-mga;X.org mga video driver;Driver for Matrox video cards (MGA2064W, MGA1064SG, MGA2164W, G100, G200, G400, G450, G550)
+;;xf86-video-i740;video-i740;X.org Intel i740 video driver;Driver for Intel i740 video cards
+;;xf86-video-i128;video-i128;X.org Number 9 I128 video driver;Driver for Number 9 I128 video cards (I128 rev 1, I128-II, I128-T2R, I128-T2R4)
+;;xf86-video-dummy-with-vt;dummy-with-vt;X.org dummy video driver with an allocated vt;Dummy video
+;;xf86-video-cirrus;video-cirrus;Cirrus Logic video driver for the Xorg X server;Driver for Cirrus Logic video chips
+;;xf86-video-chips;video-chips;X.org Chips and Technologies video driver;Driver for Chips and Technologies video processors (ct65520, ct65525, ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)
+;ubm-amdgpu-pro;;vulkan-amdgpu-pro;AMD Vulkan driver and utilities;Driver for AMD Radeon RX 7000, 6000, 5000 Series, Radeon Pro W5000 Series
+linux515;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, 500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, Quadro Sync, Quadro SDI, NVS series video cards
+linux515;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID series video cards
+linux515;ubm-linux515-nvidia;linux515-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, 16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards
+linux61;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, 500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, Quadro Sync, Quadro SDI, NVS series video cards
+linux61;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID series video cards
+linux61;ubm-linux61-nvidia;linux61-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, 16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards
+linux66;ubm-linux66-nvidia-390xx;linux66-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for NVIDIA GeForce MX100, 10, 900, 900M, 800M, 700, 700M, 600, 600M, 500, 500M, 400, 400M, TITAN, Quadro, Quadro Blade/Embedded, Quadro NVS, Quadro Sync, Quadro SDI, NVS series video cards
+linux66;ubm-linux66-nvidia-470xx;linux66-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for NVIDIA GeForce RTX 30, RTX 20, GTX 16, GeForce 10, 900, 700, 600 Series, GeForce MX, TITAN, RTX, Quadro, Quadro RTX, Quadro NVS, and GRID series video cards
+linux66;ubm-linux66-nvidia;linux66-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for NVIDIA GeForce RTX 40, RTX 30, RTX 20, MX, GTX 16, GeForce 10, 16, GeForce 900, GeForce 900M, GeForce 800M, GeForce 700, TITAN, RTX, Quadro RTX, Quadro, Quadro Blade/Embedded, Quadro NVS, NVS series video cards
\ No newline at end of file