diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 8a5227f..66e7183 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -248,7 +248,7 @@ void on_driver_selection_change(GtkWidget *self, widgets_dict *widgets){ target = module; else target = package; - if (!strcmp(target,"xf86-video-intel")||!strcmp(target,"lib32-vulkan-intel")||!strcmp(target,"mesa")){ + 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); } @@ -1131,20 +1131,6 @@ dictionary *yon_proprieary_get(){ int size=0; config_str drivers=NULL; config_str rtn=NULL; - int adapter_size; - char flag=0; - config_str adapter = yon_config_load(get_adapter_info,&adapter_size); - for (int i=0;i2){ if (strcmp(current[0],"")){ - if (!!strstr(current[0],"nvidia")&&((flag >> 2) & 1)||!!strstr(current[0],"amdgpu")&&((flag >> 1) & 1)||(!strcmp(current[0],"xf86-video-intel")||!strcmp(current[0],"mesa"))&&((flag >> 1) & 1)||!!strstr(current[0],"lib32-vulkan-intel")&&((flag >> 0) & 1)){ - int target = yon_char_parsed_check_exist(drivers,drivers_size,current[0]); - if (target>-1){ - yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[target],rtn[di]); - } else { - yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,current[0],rtn[di]); - } + int target = yon_char_parsed_check_exist(drivers,drivers_size,current[0]); + if (target>-1){ + yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[target],rtn[di]); + } else { + yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,current[0],rtn[di]); } } else if (strcmp(current[1],"")){ - if (!!strstr(current[1],"nvidia")&&((flag >> 2) & 1)||!!strstr(current[1],"amdgpu")&&((flag >> 1) & 1)||(!strcmp(current[1],"xf86-video-intel")||!strcmp(current[1],"mesa")||!!strstr(current[1],"lib32-vulkan-intel"))&&((flag >> 0) & 1)){ - int target = yon_char_parsed_check_exist(drivers,drivers_size,current[1]); - if (target>-1){ - yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[target],rtn[di]); - } else { - yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,current[1],rtn[di]); - } + int target = yon_char_parsed_check_exist(drivers,drivers_size,current[1]); + if (target>-1){ + yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[target],rtn[di]); + } else { + yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,current[1],rtn[di]); } } } @@ -1230,13 +1212,13 @@ void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list){ if (strcmp(str[0],"")!=0&&str[0]){ gtk_list_store_append(videoconfig.list,&iter); gtk_list_store_set(videoconfig.list,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1); - if (yon_char_parsed_check_exist(installed,inssize,str[0])!=-1) + if (yon_char_parsed_check_exist(installed,inssize,str[0])!=-1||yon_char_parsed_check_exist(drivers_always_active,drivers_always_active_size,str[1])>-1) gtk_list_store_set(videoconfig.list,&iter,0,1,-1); } else{ gtk_list_store_append(videoconfig.list2,&iter); gtk_list_store_set(videoconfig.list2,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1); - if (yon_char_parsed_check_exist(installed,inssize,str[1])!=-1||!strcmp(str[1],"mesa")||!strcmp(str[1],"lib32-vulkan-intel")||!strcmp(str[1],"xf86-video-intel")){ + if (yon_char_parsed_check_exist(installed,inssize,str[1])!=-1||yon_char_parsed_check_exist(drivers_always_active,drivers_always_active_size,str[1])>-1){ gtk_list_store_set(videoconfig.list2,&iter,0,1,-1); } } diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index a1798d2..5f0a644 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -77,7 +77,7 @@ #define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2" -#define get_proprietary_drivers_command "pacman -Ssyq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'" +#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'" @@ -87,6 +87,8 @@ #define XORG_MONITOR(port) yon_char_append(" XORG_MONITOR[",yon_char_append(port,"] ")) +char *drivers_always_active[] = { "mesa","lib32-vulkan-intel","xf86-video-intel"}; +int drivers_always_active_size = 3; typedef struct{ char* command; diff --git a/video-drivers.csv b/video-drivers.csv index 2332e11..08e28b4 100644 --- a/video-drivers.csv +++ b/video-drivers.csv @@ -11,4 +11,5 @@ OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT 2204;;amdgpu-pro-libgl;OpenGL AMD driver;UBLinux package includes AMD OpenGL driver and utilities; 2204;;mesa;Mesa package;Mesa package which includes the modern Gallium3D drivers for Gen 3 hardware and later;UBLinux package includes Intel driver and utilities; 2204;;xf86-video-intel;Intel drivers;UBLinux package includes Intel driver and utilities; -2204;;lib32-vulkan-intel;Vulkan Intel drivers;UBLinux package includes Vulkan Intel driver and utilities; \ No newline at end of file +2204;;lib32-vulkan-intel;Vulkan Intel drivers;UBLinux package includes Vulkan Intel driver and utilities; +2204;ubm-amdgpu-pro;;Vulkan Intel drivers;UBLinux module includes AMD driver and utilities; \ No newline at end of file