diff --git a/com.ublinux.ubl-settings-video.amd-logo.svg b/com.ublinux.ubl-settings-video.amd-logo.svg index c75c6d2..b8a741c 100644 --- a/com.ublinux.ubl-settings-video.amd-logo.svg +++ b/com.ublinux.ubl-settings-video.amd-logo.svg @@ -19,7 +19,44 @@ xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + id="defs10"> + + + + + + + + AMD icon - @@ -53,4 +86,35 @@ + + + + + + + + + + + diff --git a/com.ublinux.ubl-settings-video.intel-logo.svg b/com.ublinux.ubl-settings-video.intel-logo.svg index fa4fcb2..a704324 100644 --- a/com.ublinux.ubl-settings-video.intel-logo.svg +++ b/com.ublinux.ubl-settings-video.intel-logo.svg @@ -16,7 +16,44 @@ xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + id="defs10"> + + + + + + + + + style="stroke-width:0.165814;filter:url(#filter3075)" + transform="matrix(0.84740862,0,0,0.84740862,4.882924,4.8829241)" /> diff --git a/com.ublinux.ubl-settings-video.nvidia-logo.svg b/com.ublinux.ubl-settings-video.nvidia-logo.svg index d4f2d8b..755bf1e 100644 --- a/com.ublinux.ubl-settings-video.nvidia-logo.svg +++ b/com.ublinux.ubl-settings-video.nvidia-logo.svg @@ -17,7 +17,44 @@ xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + id="defs12"> + + + + + + + + generated by pstoedit version:3.44 from NVBadge_2D.eps + transform="matrix(0.06760249,0,0,0.06760249,35.173187,-8.514446)" + style="filter:url(#filter2175)"> diff --git a/com.ublinux.ubl-settings-video.video-card.svg b/com.ublinux.ubl-settings-video.video-card.svg index 7c30d8b..7a7601b 100644 --- a/com.ublinux.ubl-settings-video.video-card.svg +++ b/com.ublinux.ubl-settings-video.video-card.svg @@ -14,7 +14,36 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + inkscape:current-layer="layer2" /> + @@ -53,53 +83,68 @@ + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Layer 1" + style="display:none"> + style="fill:#6c797a" + d="M 24.389,38.655 C 22.629,36.623 21.415,33.659 21.094,30.279 21.091,30.254 21.089,30.229 21.086,30.204 21.035,29.645 21,29.079 21,28.5 c 0,-0.579 0.035,-1.145 0.086,-1.704 0.003,-0.025 0.005,-0.05 0.008,-0.075 0.321,-3.38 1.535,-6.344 3.295,-8.376 0.781,-1.046 1.67,-2.005 2.667,-2.845 H 17 c -4.971,0 -9,5.82 -9,13 0,7.18 4.029,13 9,13 h 10.057 c -0.998,-0.84 -1.886,-1.8 -2.668,-2.845 z" + id="path24" /> - + style="fill:#cbd4d8" + d="M 4,7.5 H 1 c -0.553,0 -1,0.447 -1,1 0,0.553 0.447,1 1,1 h 2 v 41 c 0,0.553 0.447,1 1,1 0.553,0 1,-0.447 1,-1 V 8.5 C 5,7.947 4.553,7.5 4,7.5 Z" + id="path58" /> diff --git a/source/ubl-settings-video-strings.h b/source/ubl-settings-video-strings.h index 3693de7..6df2e43 100644 --- a/source/ubl-settings-video-strings.h +++ b/source/ubl-settings-video-strings.h @@ -37,7 +37,7 @@ #define HYBRID_GRAPHICS_LABEL _("Hybrid graphics") #define FIX_GAP_LABEL _("Fix frame gap (nVidia)") #define EXTRA_LABEL _("Extra") -#define TITLE_LABEL _("UBlinux Video Configuration") +#define TITLE_LABEL _("UBLinux Video Configuration") #define LOAD_LABEL _("Load") #define SAVE_LABEL _("Save") #define ON_LABEL _("On") @@ -60,6 +60,7 @@ #define CANCEL_LABEL _("Cancel") #define ACCEPT_LABEL _("Accept") #define DONT_USE_LABEL _("Don't use") +#define PROPRIETARY_LOADING_LABEL _("Driver list is currently loading...") #define INFORMATION_LABEL _("Information") #define DRIVERS_LABEL _("Drivers") diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 9b223b3..8c62f7a 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -488,6 +488,17 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){ } } +void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){ + if (pagen==1){ + GtkTreeIter iter; + if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){ + pthread_t tid; + pthread_create(&tid,NULL,(void*)yon_proprieary_get,NULL); + } + } + +} + void on_monitor_configure(GtkWidget *self,monitor_window *window){ if(window&&window->config){ monitor_edit_window *monitors = new(monitor_edit_window); @@ -594,7 +605,7 @@ void on_about() GtkWidget *hideButtonBox = yon_gtk_builder_get_widget(builder, "buttonBoxHide"); gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(window), _("UBlinux Video Configuration")); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(window), version_application); - gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(window), _("Progect Home Page")); + gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(window), _("Project Home Page")); gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(window), _("Videocard and monitor configuration manager")); gtk_widget_set_visible(hideButtonBox, 0); gtk_widget_show(window); @@ -611,6 +622,7 @@ void yon_monitor_window_update(monitor_edit_window *window){ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo),PARAMETER_DEFAULT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo),"60"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo),"75"); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationFrequencyCombo),0); found = yon_gtk_combo_box_text_find(window->templateMonitorConfigurationPositionPortCombo, yon_dictionary_get_data(window->config,monitorconfig*)->position_port); if (found==-1) found=0; @@ -917,6 +929,11 @@ void on_config_fill_interface(widgets_dict *widgets) * [EN] */ dictionary *yon_proprieary_get(){ + videoconfig.status_render.strings_size=0; + videoconfig.status_render.text_strings_to_render=NULL; + videoconfig.status_render.text_to_render=PROPRIETARY_LOADING_LABEL; + videoconfig.status_render.type=BACKGROUND_IMAGE_FAIL_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); videoconfig.proprietary=NULL; int drivers_size=0; config_str drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size); @@ -936,6 +953,12 @@ dictionary *yon_proprieary_get(){ else videoconfig.proprietary=yon_dictionary_create_with_data_connected(videoconfig.proprietary,drivers[drivers_found],rtn[i]); } } + yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); + videoconfig.status_render.strings_size=0; + videoconfig.status_render.text_strings_to_render=NULL; + videoconfig.status_render.text_to_render=""; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); } @@ -950,7 +973,7 @@ void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list){ int size=0; config_str str = yon_char_parse((char*)dict->data,&size,";"); gtk_list_store_append(list,&iter); - gtk_list_store_set(list,&iter,1,str[0],2,str[1],3,str[2],4,str[3],-1); + gtk_list_store_set(list,&iter,1,str[0],2,str[1],3,str[2],4,str[3],5,str[4],-1); if (strstr(dict->key," installed")) gtk_list_store_set(list,&iter,0,1,-1); } @@ -1064,7 +1087,6 @@ void yon_setup_config(char *configcommand) for (int i=0;i",USED_KERNEL_DRIVER_LABEL,": ",driver_use, "\n",AVALIABLE_KERNEL_DRIVERS_LABEL,": ",driver_all,"",NULL); gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(widgets->builder,"InformationLabel")),final_text); - if (strcmp(vendor,"Intel Corporation")==0){ + if (strstr(vendor,"Intel")){ GtkIconTheme *icthm=gtk_icon_theme_get_default(); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); } - else if (strcmp(vendor,"NVidia Corporation")==0){ + else if (strstr(vendor,"NVidia")){ GtkIconTheme *icthm=gtk_icon_theme_get_default(); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),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 (strcmp(vendor,"AMD Corporation")==0){ + else if (strstr(vendor,"AMD")){ GtkIconTheme *icthm=gtk_icon_theme_get_default(); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),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)); } @@ -1365,6 +1387,7 @@ void yon_setup_widgets(widgets_dict *widgets) widgets->driversDeleteButton = yon_gtk_builder_get_widget(widgets->builder, "driversDeleteButton"); widgets->driversInstallButton = yon_gtk_builder_get_widget(widgets->builder, "driversInstallButton"); widgets->TerminalOverlay = yon_gtk_builder_get_widget(widgets->builder, "TerminalOverlay"); + widgets->MenusTab = yon_gtk_builder_get_widget(widgets->builder, "MenusTab"); widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "driversTreeSelection")); widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "proprietartInstalledColumn")); @@ -1388,11 +1411,14 @@ void yon_setup_widgets(widgets_dict *widgets) widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDescriptionColumn")); widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverSupportedColumn")); + gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL); videoconfig.list = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore6")); gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->proprietaryTreeView),GTK_TREE_MODEL(videoconfig.list)); + g_signal_connect(G_OBJECT(widgets->MenusTab), "switch-page", G_CALLBACK(on_proprietary_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); @@ -1476,6 +1502,7 @@ void yon_setup_widgets(widgets_dict *widgets) videoconfig.status_render.icon=widgets->mainStatusIcon; videoconfig.status_render.label=widgets->mainStatusLabel; videoconfig.status_render.box=widgets->mainStatusBox; + if (videoconfig.lock) if (videoconfig.lock_load_global==1) gtk_widget_set_sensitive(widgets->mainHeaderLoadGlobalMenuItem,0); if (videoconfig.lock_save_global==1) @@ -1572,7 +1599,7 @@ int main(int argc, char *argv[]) yon_setup_config(load_drivers_local_command); widgets_dict widgets; yon_setup_widgets(&widgets); - yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); + // yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); // yon_gtk_list_store_fill_with_proprietaries(videoconfig.modulelist); gtk_widget_show(widgets.MainWindow); // yon_fill_ui(&widgets); diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 82d5b18..0a107d9 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -272,6 +272,8 @@ typedef struct GtkWidget *PlugBox; GtkWidget *PlugSaveBox; GtkWidget *PlugLoadBox; + + GtkWidget *MenusTab; } widgets_dict; typedef struct diff --git a/source/ubl-utils.c b/source/ubl-utils.c index 866c980..3dd7177 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -853,98 +853,6 @@ void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, voi #endif - -// dictionary *yon_gtk_app_chooser_create(GtkBuilder *builder){ -// GtkWidget *chooserWindow=gtk_window_new(GTK_WINDOW_TOPLEVEL); -// GtkWidget *Box=gtk_box_new(GTK_ORIENTATION_VERTICAL,5); -// GtkWidget *Frame=gtk_frame_new(""); -// GtkWidget *Scroll=gtk_scrolled_window_new(NULL, gtk_adjustment_new(0,0,10000,1,10,100)); -// GtkWidget *PackBox=gtk_box_new(GTK_ORIENTATION_VERTICAL,5); -// GtkWidget *ButtonsBox=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); -// GtkWidget *ButtonsPlaceBox=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); - -// GtkWidget *CancelButton=gtk_button_new_with_label("Cancel"); -// GtkWidget *AcceptButton=gtk_button_new_with_label("Accept"); -// gtk_container_add(GTK_CONTAINER(chooserWindow),Box); -// gtk_box_pack_start(GTK_BOX(Box),Frame,1,1,0); -// gtk_container_add(GTK_CONTAINER(Frame),PackBox); -// gtk_box_pack_start(GTK_BOX(Box),ButtonsBox,0,0,0); -// gtk_box_pack_end(GTK_BOX(ButtonsBox),ButtonsPlaceBox,0,0,0); -// gtk_box_pack_end(GTK_BOX(ButtonsPlaceBox),AcceptButton,0,0,0); -// gtk_box_pack_end(GTK_BOX(ButtonsPlaceBox),CancelButton,0,0,0); -// gtk_box_pack_start(GTK_BOX(PackBox),(GtkWidget*)yon_gtk_app_chooser_apps_create(builder),0,0,0); -// gtk_widget_show_all(chooserWindow); -// } - -/** - * yon_iv_segment_create: - * connect_to - dictionary, in the end of which new one will be connected; - * name - name of this segment, renders on label; - * categories - desktop file categories that application NEEDS to have to render in that category; - * segment_icon_name - icon name for this section; - * builder - newly allocated builder with glade file connected where template widgets are stored: - * - templateAppsIconView - setted up icon view; - * - templateAppsPack - setted up container for every template widget; - * - templateAppsImage - image for rendering section image; - * - templateAppsLabel - label for rendering section name; - */ -// dictionary *yon_iv_segment_create(dictionary *connect_to, char *name, char *categories, char *segment_icon_name){ -// IVSegment *segment=malloc(sizeof(IVSegment)); -// segment->name=name; -// segment->categories=categories; -// GtkBuilder *builder=gtk_builder_new_from_string(return_app_string(),-1); -// GtkWidget *iv=yon_gtk_builder_get_widget(builder,"templateAppsIconView"); -// GtkWidget *expander=yon_gtk_builder_get_widget(builder,"templateAppsPack"); -// GtkWidget *image=yon_gtk_builder_get_widget(builder,"templateAppsImage"); -// GtkWidget *label=yon_gtk_builder_get_widget(builder,"templateAppsLabel"); -// GtkIconTheme *theme=gtk_icon_theme_get_default(); -// gtk_image_set_from_pixbuf(GTK_IMAGE(image),gtk_icon_theme_load_icon_for_scale(theme,segment_icon_name,20,1,GTK_ICON_LOOKUP_FORCE_SVG,NULL)); -// gtk_label_set_text(GTK_LABEL(label),name); -// GtkListStore *ls=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore5")); -// // g_signal_connect(G_OBJECT(iv), "item-activated", G_CALLBACK(on_activate), videoconfig.applist); -// segment->Expander=expander; -// segment->IV=iv; -// segment->LS=ls; -// segment->Image=image; -// dictionary *dict=NULL; -// if (connect_to) { -// // connect_to=yon_dictionary_get_last(connect_to); -// dict=yon_dictionary_create_with_data_connected(connect_to,name,segment); -// } else -// dict=yon_dictionary_create_with_data(name,segment); -// return dict; -// } - -// GtkWidget *yon_gtk_app_chooser_apps_create(){ -// GtkWidget *Box=gtk_box_new(GTK_ORIENTATION_VERTICAL,0); -// dictionary *IVS=yon_iv_segment_create(NULL, "Graphics", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Tools", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Internet", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Multimedia", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Settings", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Education", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Office", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Other", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "Development", "", "dialog-yes-symbolic"); -// yon_iv_segment_create(IVS, "System", "", "dialog-yes-symbolic"); -// dictionary *nd; -// for_dictionaries(nd,IVS){ -// gtk_box_pack_start(GTK_BOX(Box),((IVSegment*)nd->data)->Expander,0,0,0); -// } -// return Box; - -// } - -// GtkWidget *yon_gtk_socket_create_new_with_connect(GtkWidget *container, gpointer data){ -// GtkWidget *socket; -// socket = gtk_socket_new(); -// g_signal_connect(G_OBJECT(socket),"plug-added",G_CALLBACK(yon_on_plug_added),data); -// g_signal_connect(G_OBJECT(socket),"plug-removed",G_CALLBACK(yon_on_plug_removed),data); -// g_signal_connect(G_OBJECT(socket),"destroy",G_CALLBACK(yon_on_plug_removed),data); -// gtk_box_pack_start(GTK_BOX(container),socket,1,1,0); -// return socket; -// }; - int yon_gtk_combo_box_fill(GtkWidget *combo, config_str parameters,int size){ if (combo&¶meters){ for (int i=0;i0 - - - @@ -1125,6 +1122,8 @@ + + @@ -1239,7 +1238,7 @@ - + True True @@ -1780,6 +1779,7 @@ 1 vertical True + 4 @@ -1811,7 +1811,7 @@ - 2 + 3 @@ -1826,7 +1826,7 @@ 150 - 3 + 4 @@ -1841,7 +1841,7 @@ 220 - 4 + 5 @@ -1950,7 +1950,7 @@ 0 vertical True - 2 + 4 @@ -1969,9 +1969,12 @@ Package - + + word + 175 + - 1 + 2 @@ -1982,7 +1985,7 @@ - 2 + 3 @@ -1997,7 +2000,7 @@ 150 - 3 + 4 @@ -2012,7 +2015,7 @@ 220 - 4 + 5 diff --git a/video-drivers.csv b/video-drivers.csv index 78f380e..a1678f5 100644 --- a/video-drivers.csv +++ b/video-drivers.csv @@ -1,8 +1,8 @@ -VERSION_ID;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT -2204;ubm-nvidia-340;nvidia-340;Пакет с модулем драйвера и утилиты NVIDIA 340xx;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX -2204;ubm-nvidia-390;nvidia-390;Пакет с модулем драйвера и утилиты NVIDIA 390xx;Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX -2204;ubm-nvidia-430;nvidia-430;Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX -2204;ubm-nvidia-470;nvidia-470;Пакет с модулем драйвера и утилиты NVIDIA 470xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX -2204;ubm-nvidia-510;nvidia-510;Пакет с модулем драйвера и утилиты NVIDIA 510xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX -2204;ubm-nvidia-515;nvidia-515;Пакет с модулем драйвера и утилиты NVIDIA 515xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX -2204;ubm-nvidia-optimus;nvidia-optimus;Пакет с модулем включает в себя NVIDIA Optimus; +VERSION_ID;DRV_PAСKAGE_UBM;DRV_PACKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT +2204;ubm-nvidia-340;bbswitch-dkms, ffnvcodec-headers, gwe, lib32-nvidia-340xx-utils, lib32-opencl-nvidia-340xx, libxnvctrl-340xx, nvidia-340xx-dkms, nvidia-340xx-utils, nvidia-prime, nvtop, opencl-nvidia-340xx, python-py3nvml, ;nvidia-340;Пакет с модулем драйвера и утилиты NVIDIA 340xx;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX +2204;ubm-nvidia-390;bbswitch-dkms, ffnvcodec-headers8.1, ;nvidia-390;Пакет с модулем драйвера и утилиты NVIDIA 390xx;Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX +2204;ubm-nvidia-430;nvidia-430xx-dkms;nvidia-430;Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX +2204;ubm-nvidia-470;nvidia-470xx-dkms;nvidia-470;Пакет с модулем драйвера и утилиты NVIDIA 470xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX +2204;ubm-nvidia-510;nvidia-510xx-dkms;nvidia-510;Пакет с модулем драйвера и утилиты NVIDIA 510xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX +2204;ubm-nvidia-515;ubm-001-linux, ubm-010-core, ubm-020-xorg-base, ubm-030-xorg-gtk, ubm-lib32;nvidia-515;Пакет с модулем драйвера и утилиты NVIDIA 515xx;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX +2204;ubm-nvidia-optimus;ubm-001-linux, ubm-010-core, ubm-020-xorg-base, ubm-030-xorg-gtk, ubm-035-xorg-qt5, ubm-lib32;nvidia-optimus;Пакет с модулем включает в себя NVIDIA Optimus;