From 8cf0e16e3f8c19e1b3a6fe971fb065f572094aab Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 13 Jun 2024 18:00:41 +0600 Subject: [PATCH] Driver tab changes --- source/ubl-settings-video.c | 235 ++++++--------- source/ubl-settings-video.h | 44 +-- source/ubl-strings.h | 4 +- ubl-settings-video.glade | 556 +++++++++++++----------------------- video-drivers.csv | 60 ++-- 5 files changed, 344 insertions(+), 555 deletions(-) diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 67b4be1..7edbd2d 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -30,7 +30,7 @@ static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer 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); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),(double)yon_char_count(text,"::")/4); } void yon_terminal_start(main_window *widgets, char *usr_command){ @@ -98,7 +98,7 @@ void on_driver_pack_install(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)); + 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,1,&name,-1); yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name)); @@ -107,25 +107,11 @@ void on_driver_pack_install(GtkWidget *self,main_window *widgets){ } } -void on_driver_install(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_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); - } 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)); + 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,1,&name,-1); yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name)); @@ -138,70 +124,22 @@ 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)); + 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->proprietaryInfoButton,1); + gtk_widget_set_sensitive(widgets->InfoButton,1); int installed=0; - gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->proprietaryTreeView)),&iter,0,&installed,-1); + gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)),&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); - } - } 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_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); + // gtk_widget_set_sensitive(widgets->InstallButton,0); + // gtk_widget_set_sensitive(widgets->DeleteButton,1); } else { - gtk_widget_set_sensitive(widgets->driversInstallButton,1); - gtk_widget_set_sensitive(widgets->driversDeleteButton,0); + // gtk_widget_set_sensitive(widgets->InstallButton,1); + // gtk_widget_set_sensitive(widgets->DeleteButton,0); } } 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){ - 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); - } else { - yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + gtk_widget_set_sensitive(widgets->InfoButton,0); + // gtk_widget_set_sensitive(widgets->InstallButton,0); + // gtk_widget_set_sensitive(widgets->DeleteButton,0); } } @@ -213,7 +151,7 @@ void on_driver_pack_info(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)); + 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,1,&name,-1); pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name)); @@ -223,22 +161,20 @@ void on_driver_pack_info(GtkWidget *self, main_window *widgets){ } } -void on_driver_info(GtkWidget *self,main_window *widgets){ +void on_pack_install_activate(){ + +} - 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); - } +void on_module_install_activate(){ + +} + +void on_pack_remove_activate(){ + +} + +void on_module_remove_activate(){ + } void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){ @@ -345,6 +281,10 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window void on_save_done(main_window *widgets, config_str output, int size){ if (widgets) {}; + // char *gapfix1 = yon_config_get_by_key(KWIN_TRIPLE_BUFFER); + // char *gapfix2 = yon_config_get_by_key(GL_YIELD); + // int gapfix1_status = yon_config_get_status(KWIN_TRIPLE_BUFFER); + // int gapfix2_status = yon_config_get_status(GL_YIELD); char *final_output = yon_char_parsed_to_string(output,size,""); printf("%s\n",final_output); free(final_output); @@ -449,12 +389,18 @@ void yon_interface_save(){ // 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))){ @@ -959,31 +905,41 @@ void yon_monitor_view_update(){ void yon_proprietary_local_get(){ gtk_list_store_clear(main_config.list); gtk_list_store_clear(main_config.list2); - int drivers_size=0; + int kernels_size; + config_str kernels_installed=yon_config_load(yon_debug_output("%s\n",yon_get_kernels_installed),&kernels_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(current[1])))||(!yon_char_is_empty(current[1])&&!system(yon_get_is_exist_command(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; + gtk_list_store_append(main_config.list,&iter); + gtk_list_store_set(main_config.list,&iter,0,module_status,1,package_status,2,current[0],3,current[3],4,current[4],5,_(current[5]),7,current[1],8,current[2],-1); + } } } + textdomain(template_ui_LocaleName); + yon_ubl_status_box_render(SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + textdomain(LocaleName); +} + +void yon_proprietary_get_thread(){ + yon_ubl_status_box_render(PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE); + GThread *thread = g_thread_new("drivers_loading",(GThreadFunc)(yon_proprietary_local_get),NULL); } void yon_monitor_view_dictionary_destroy(void *window){ @@ -1199,18 +1155,22 @@ 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 *self,void *widgets){ + yon_terminal_window_launch(GTK_WINDOW(((main_window*)widgets)->Window),install_proprietary_command); +} + /** 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 +1188,15 @@ 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->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriverModulesTab")); widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriversTab")); @@ -1263,27 +1211,15 @@ 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")); - 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->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_get_thread), 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->DeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); + // g_signal_connect(G_OBJECT(widgets->InstallButton), "clicked", G_CALLBACK(on_driver_pack_install), 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); @@ -1297,10 +1233,14 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry); // yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox); + 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() @@ -1335,7 +1275,7 @@ 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); @@ -1344,8 +1284,15 @@ int main(int argc, char *argv[]){ yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); textdomain(LocaleName); } + 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_local_get(); + } + yon_proprietary_get_thread(); // on_config_fill_interface(&widgets); yon_monitor_set_resolutions(); gtk_main(); diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 4cee7ae..82df60a 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 @@ -81,9 +77,15 @@ #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 +102,8 @@ #define OPTIRUN "OPTIRUN" #define PRIMUSRUN "PRIMUSRUN" #define INTEGRATEDVGA "INTEGRATEDVGA" -#define KWIN_TRIPLE_BUFFER "\"export KWIN_TRIPLE_BUFFER" -#define GL_YIELD "\"export __GL_YIELD" +#define KWIN_TRIPLE_BUFFER "export KWIN_TRIPLE_BUFFER" +#define GL_YIELD "export __GL_YIELD" #define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO" #define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE" @@ -176,28 +178,8 @@ 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 *InfoButton; GtkWidget *DriverModulesTab; GtkWidget *DriversTab; @@ -223,8 +205,6 @@ typedef struct GtkWidget *MenusTab; GtkWidget *LoadDriversButton; - GtkWidget *LoadDriversButton1; - GtkWidget *proprietaryNotebook; } main_window; typedef struct diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 47e58f2..4535f58 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -182,4 +182,6 @@ #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 DESCR38_LABEL _("X.org X11 qxl video driver") + +#define DATABASE_UNACCESSIBLE_LABEL _("Database files must be updated") \ No newline at end of file diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index 450681f..7ded75f 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -280,16 +280,6 @@ False dialog-information-symbolic - - True - False - user-trash-symbolic - - - True - False - dialog-information-symbolic - True False @@ -300,26 +290,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 +308,24 @@ - + + + - + - + + + + + @@ -1057,410 +1033,280 @@ - + 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 + + + True + True + True + image3 + + + + False + True + 0 + - - Installed - - - - 0 - - + + True + False + True + True + image10 + + + False + True + 2 + + + + False + True + 0 + + + + + True + False + vertical - - Package + + True + True + liststore1 - - word - 175 + + Installed - - 2 - - - - - - Driver - - - 3 - + - - - - - autosize - Description - - word - 150 - - - 4 - + + + + + + + + + False + True + 0 + - - autosize - Supported Devices + + True + True + external + in - - word - 220 + + True + True + liststore6 + 1 + both + True + 4 + + + Module + + + + 0 + + + + + + + Package + descending + 0 + + + + 1 + + + + + + + Kernel + + + + 2 + + + + + + + Driver + + + + 3 + + + + + + + autosize + 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/video-drivers.csv b/video-drivers.csv index cde0928..1677e91 100644 --- a/video-drivers.csv +++ b/video-drivers.csv @@ -1,23 +1,37 @@ -OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT -2204;ubm-nvidia-340;;nvidia-340;UBLinux module includes NVIDIA 340xx driver and utilities;Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards -2204;;nvidia-340xx-dkms;nvidia-340;UBLinux package includes NVIDIA 340xx driver and utilities;Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards -2204;ubm-nvidia-390;;nvidia-390;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-nvidia-470;;nvidia-470;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;ubm-nvidia-510;;nvidia-510;UBLinux module includes NVIDIA 510xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards -2204;;nvidia-510xx-dkms;nvidia-510;UBLinux package includes NVIDIA 510xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards -2204;;xf86-video-nouveau;video-nouveau;UBLinux package includes opensource driver NVIDIA;Open source nvidia graphics card driver -2204;;vulkan-amdgpu-pro;vulkan-amdgpu-pro;UBLinux package includes AMD Vulkan driver and utilities;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 -2204;ubm-amdgpu-pro;;vulkan-amdgpu-pro;UBLinux module includes AMD driver and utilities;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 -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-openchrome;video-openchrome;UBLinux package includes VIA video driver;Open Source X driver for VIA IGPs -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;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;vulkan-amdgpu-pro;AMD Vulkan driver and utilities;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 +linux515;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards +linux515;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards +linux515;ubm-linux515-nvidia;linux515-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards +linux61;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards +linux61;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards +linux61;ubm-linux61-nvidia;linux61-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards +linux66;ubm-linux66-nvidia-390xx;linux66-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards +linux66;ubm-linux66-nvidia-470xx;linux66-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards +linux66;ubm-linux66-nvidia;linux66-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards \ No newline at end of file