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 @@
-
- 3
+ 4
@@ -1841,7 +1841,7 @@
220
- 4
+ 5
@@ -1950,7 +1950,7 @@
0
vertical
True
- 2
+ 4
@@ -1969,9 +1969,12 @@
@@ -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;