Main interactions done, proprietary drivers management in process

pull/6/head^2
parent 58f8eb3cde
commit b67c090ed4

1
.gitignore vendored

@ -5,3 +5,4 @@ ubl-settings-video.glade~
compile/ compile/
ubl-settings-video_ru.po~ ubl-settings-video_ru.po~
ubl-settings-video-n.pot ubl-settings-video-n.pot
vgcore.*

@ -25,6 +25,7 @@ all: init build
init: init:
@echo "Initialize ..."; \ @echo "Initialize ..."; \
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-video.h; \ sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-video.h; \
gcc source/ubl-settings-video.c source/ubl-utils.c -o ubl-settings-video `pkg-config --cflags --libs gtk+-3.0` -g; \
echo "-- Build path: ${CMAKE_BUILD_DIR}" echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend: depend:

@ -17,9 +17,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
set(SOURCE_FILES set(SOURCE_FILES
ubl-settings-video.c ubl-settings-video.c
ubl-settings-video.h
ubl-utils.c ubl-utils.c
ubl-utils.h) )
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}

File diff suppressed because it is too large Load Diff

@ -27,31 +27,42 @@
#define get_ports_command "xrandr |grep -E \"^[A-Z0-9]* connected\" |cut -d' ' -f1" #define get_ports_command "xrandr |grep -E \"^[A-Z0-9]* connected\" |cut -d' ' -f1"
#define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\""
#define get_proprietary_drivers_command ""
#define get_frequences_command "xrandr |grep -v -n \"[a-z][a-z]\" |sed 's/ * / /g' |cut -d' ' -f1,3-"
#define load_drivers_command "/usr/bin/ubconfig --default --source " #define load_drivers_command "/usr/bin/ubconfig --default --source "
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN " #define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_global_command "/usr/bin/ubconfig --target global set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s " #define save_drivers_global_command "/usr/bin/ubconfig --target global set video "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN " #define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_local_command "/usr/bin/ubconfig --target system set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s " #define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video "
char *local; #define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video "
typedef char* string; #define remove_drivers_local_command "/usr/bin/ubconfig --target global remove video "
string version_application = "1.0";
char *local;
typedef char *string;
string version_application = "1.0";
#define _(String) gettext(String) #define _(String) gettext(String)
typedef struct { typedef struct
{
int autoChooseDrivers; int autoChooseDrivers;
dictionary *videoconfig; dictionary *videoconfig;
dictionary *monitors; dictionary *monitors;
char *proprietary; dictionary *proprietary;
GtkListStore *list;
char *failsafenVidia; char *failsafenVidia;
char *failsafeATI; char *failsafeATI;
int descreteOnly; int descreteOnly;
@ -59,20 +70,27 @@ typedef struct {
char *primusrun; char *primusrun;
int gapfix; int gapfix;
int optiorprimus; int optiorprimus;
apps *applist;
int appsize;
} config; } config;
typedef struct {
typedef struct
{
int main; int main;
char *port; char *port;
char *resolution; char *resolution;
char *resolutionCapabilities; char **resolutionCapabilities;
char *frequency; char *frequency;
char *rotation; char *rotation;
char *stringparameters; char *stringparameters;
int resolution_size;
} monitorconfig; } monitorconfig;
typedef struct { typedef struct {
GtkWidget *combo;
GtkWidget *tree;
} combo_tree;
typedef struct
{
dictionary *monitors; dictionary *monitors;
dictionary *overlays; dictionary *overlays;
GtkBuilder *builder; GtkBuilder *builder;
@ -145,7 +163,8 @@ typedef struct {
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck; GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
} widgets_dict; } widgets_dict;
typedef struct { typedef struct
{
GtkWidget *templateMonitorConfigurationWindow; GtkWidget *templateMonitorConfigurationWindow;
GtkWidget *templateMonitorConfigurationBox; GtkWidget *templateMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationMonitorLabel; GtkWidget *templateMonitorConfigurationMonitorLabel;
@ -171,8 +190,18 @@ typedef struct {
dictionary *curconfig; dictionary *curconfig;
} MonitorSettings; } MonitorSettings;
typedef struct
{
GtkWidget *window;
GtkWidget *propriearyTreeView;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkListStore *list;
GtkWidget *ProprietaryCloseButton;
GtkWidget *ProprietaryAcceptButton;
} driver_window;
int yon_check_for_monitors(); int yon_check_for_monitors();
MonitorSettings *yon_setup_monitor_settings(); MonitorSettings *yon_setup_monitor_settings();
@ -180,5 +209,14 @@ dictionary *yon_dictionary_pack_monitors(MonitorSettings *monitors, int size);
dictionary *yon_dictionary_pack_overlays(MonitorSettings *monitors, int size); dictionary *yon_dictionary_pack_overlays(MonitorSettings *monitors, int size);
void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors); void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors);
void on_save_configuration(GtkWidget self, MonitorSettings *monitors); void on_save_configuration(GtkWidget self, MonitorSettings *monitors);
int yon_config_init(char **parameters, int size);
void yon_parse_monitor(dictionary *monitor, char *string_of_settings);
void on_config_fill_interface(widgets_dict *widgets);
void yon_update_config(widgets_dict *widgets);
void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets);
void on_configuration_save__local_global(GtkWidget *self, widgets_dict *widgets);
void on_configuration_save__local(GtkWidget *self, widgets_dict *widgets);
void yon_config_monitor_string_parse(char *parameters, int *size);
int yon_char_get_if_resolution(char *parsed_string);
void yon_monitor_set_resolutions(dictionary *dict);
#endif #endif

File diff suppressed because it is too large Load Diff

@ -3,6 +3,7 @@
#include <pthread.h> #include <pthread.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h>
#include <pthread.h> #include <pthread.h>
#include <string.h> #include <string.h>
#include <dirent.h> #include <dirent.h>
@ -12,43 +13,32 @@
#define DesktopPath "/usr/share/applications/" #define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj,obj1) for(obj=obj1->first;obj!=NULL;obj=obj->next) #define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
#define yon_ubl_set_global_config_load_command(command) config_commands.global_config_load_command=command #define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data = command
#define yon_ubl_set_global_config_save_command(command) config_commands.global_config_save_command=command
#define yon_ubl_set_local_config_load_command(command) config_commands.local_config_load_command=command
#define yon_ubl_set_local_config_save_command(command) config_commands.local_config_save_command=command
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data=command #define yon_ubl_load_global_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_load_local_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_save_global_config(command) yon_config_save(command)
#define yon_ubl_save_local_config(command) yon_config_save(command)
#define yon_ubl_load_global_config() yon_config_load(config_commands.global_config_load_command) typedef enum
#define yon_ubl_load_local_config() yon_config_load(config_commands.local_config_load_command) {
#define yon_ubl_save_global_config() yon_config_save(config_commands.global_config_save_command) #ifdef __GTK_H__
#define yon_ubl_save_local_config() yon_config_save(config_commands.local_config_save_command) DICTIONARY_GTK_WIDGETS_TYPE,
#endif
struct config_commands{
char *global_config_load_command;
char *global_config_save_command;
char *local_config_load_command;
char *local_config_save_command;
char **config_save_data;
};
typedef enum {
DICTIONARY_ACTION_WIDGETS_TYPE,
DICTIONARY_IVGRAPHICALS_TYPE,
DICTIONARY_OTHER_TYPE DICTIONARY_OTHER_TYPE
} DICT_TYPE; } DICT_TYPE;
typedef struct
typedef struct { {
char *command; char *command;
int *exitcode; int *exitcode;
} thread_output; } thread_output;
typedef struct dictionary { typedef struct dictionary
{
char *key; char *key;
void *data; void *data;
struct dictionary *next; struct dictionary *next;
@ -57,7 +47,8 @@ typedef struct dictionary {
DICT_TYPE data_type; DICT_TYPE data_type;
} dictionary; } dictionary;
typedef struct apps{ typedef struct apps
{
char *Name; char *Name;
int Type; int Type;
char *Categories; char *Categories;
@ -65,18 +56,20 @@ typedef struct apps{
char *Icon; char *Icon;
int Pluggable; int Pluggable;
int DualPluggable; int DualPluggable;
} apps; } apps;
// dictionary functions
//dictionary functions
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
dictionary *yon_dictionary_create_empty(); dictionary *yon_dictionary_create_empty();
dictionary * yon_dictionary_create_conneced(dictionary *targetdict); dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict); dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_switch_places(dictionary *dict,int aim); dictionary *yon_dictionary_switch_places(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict); void yon_dictionary_make_first(dictionary *dict);
@ -94,7 +87,7 @@ dictionary *yon_dictionary_rip(dictionary *dict);
dictionary *yon_dictionary_get_nth(dictionary *dict, int place); dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
//char functions // char functions
char *yon_char_get_augumented(char *source, char *append); char *yon_char_get_augumented(char *source, char *append);
@ -104,59 +97,62 @@ char *yon_cut(char *source, int size, int startpos);
char *yon_char_divide(char *source, int dividepos); char *yon_char_divide(char *source, int dividepos);
char *yon_char_divide_search(char *source, char* dividepos, int delete_divider); char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert); char *yon_char_from_int(int int_to_convert);
char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
//parsing functions int yon_char_parsed_check_exist(char **parameters, int size, char *param);
apps *yon_apps_scan_and_parse_desktops(int *sizef);
// parsing functions
void yon_apps_sort(apps *applist,int size); apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist,char *name, int size); apps *yon_apps_get_by_name(apps *applist, char *name, int size);
char *yon_config_load(char *command); char **yon_config_load(char *command, int *str_len);
int yon_config_save(char *command); int yon_config_save(char *command);
//terminal-using functions char *yon_config_get_parameter(char **parameters, int size, char *param);
char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_string, char *config_parameter, char *divider);
// terminal-using functions
int yon_launch_app(char *name); int yon_launch_app(char *name);
int yon_launch_app_with_arguments(char *name, char *args); int yon_launch_app_with_arguments(char *name, char *args);
int yon_launch(thread_output *thread); int yon_launch(thread_output *thread);
//Gtk functions // Gtk functions
#ifdef __GTK_H__ #ifdef __GTK_H__
#define yon_gtk_builder_get_widget(obj,obj2) GTK_WIDGET(gtk_builder_get_object(obj,obj2)) #define yon_gtk_builder_get_widget(obj, obj2) GTK_WIDGET(gtk_builder_get_object(obj, obj2))
typedef struct { typedef struct
{
GtkWidget *Icon; GtkWidget *Icon;
GtkWidget *Label; GtkWidget *Label;
GtkWidget *IconView; GtkWidget *IconView;
GtkListStore *List; GtkListStore *List;
} expander_icon_view; } expander_icon_view;
// GtkWidget *yon_gtk_app_chooser_apps_create(); // GtkWidget *yon_gtk_app_chooser_apps_create();
// dictionary *yon_gtk_app_chooser_create(); // dictionary *yon_gtk_app_chooser_create();
// expander_icon_view yon_gtk_icon_view_expander_create(GtkWidget *pack, ...); // expander_icon_view yon_gtk_icon_view_expander_create(GtkWidget *pack, ...);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
GtkWidget *yon_gtk_socket_create_new_with_connect(GtkWidget *container, gpointer data); GtkWidget *yon_gtk_socket_create_new_with_connect(GtkWidget *container, gpointer data);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment); int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
@ -164,25 +160,25 @@ int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
int yon_dictionary_gtk_pack_start_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding); int yon_dictionary_gtk_pack_start_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
int yon_dictionary_gtk_pack_end_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding); int yon_dictionary_gtk_pack_end_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
//uninitialised // uninitialised
void yon_on_plug_added(GtkSocket* self, gpointer user_data);
void yon_on_plug_removed(GtkSocket* self, gpointer user_data);
void yon_on_plug_added(GtkSocket *self, gpointer user_data);
void yon_on_plug_removed(GtkSocket *self, gpointer user_data);
#endif #endif
typedef enum { typedef enum
{
BACKGROUND_IMAGE_SUCCESS_TYPE, BACKGROUND_IMAGE_SUCCESS_TYPE,
BACKGROUND_IMAGE_FAIL_TYPE BACKGROUND_IMAGE_FAIL_TYPE
} BACKGROUND_IMAGE_TYPE; } BACKGROUND_IMAGE_TYPE;
#ifdef __cplusplus #ifdef __cplusplus
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()),GTK_WIDGET(head.gobj()),GTK_WIDGET(image.gobj()),(char*)imag_path) #define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()), GTK_WIDGET(head.gobj()), GTK_WIDGET(image.gobj()), (char *)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(GTK_WIDGET(statusbox.gobj()), GTK_WIDGET(statusicon.gobj()), GTK_WIDGET(statuslabel.gobj()), (char*)iconname, (char*)statustext, backgroundclass) #define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(GTK_WIDGET(statusbox.gobj()), GTK_WIDGET(statusicon.gobj()), GTK_WIDGET(statuslabel.gobj()), (char *)iconname, (char *)statustext, backgroundclass)
#else #else
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay),GTK_WIDGET(head),GTK_WIDGET(image), (char*)imag_path) #define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) #define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, statustext, backgroundclass) _yon_ubl_status_box_render(statusbox, statusicon, statuslabel, statustext, backgroundclass)
#endif #endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path); void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_status_box_render(GtkWidget *StatusBox, GtkWidget *StatusIcon, GtkWidget *StatusLabel, char *IconName, char* StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass); void _yon_ubl_status_box_render(GtkWidget *StatusBox, GtkWidget *StatusIcon, GtkWidget *StatusLabel, char *StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass);
#endif #endif

@ -342,6 +342,16 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">document-edit-symbolic</property> <property name="icon-name">document-edit-symbolic</property>
</object> </object>
<object class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">dialog-information-symbolic</property>
</object>
<object class="GtkImage" id="image11">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">user-trash-symbolic</property>
</object>
<object class="GtkImage" id="image2"> <object class="GtkImage" id="image2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -360,7 +370,6 @@
<object class="GtkBox" id="templateMonitorInfoBox"> <object class="GtkBox" id="templateMonitorInfoBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="margin-start">3</property> <property name="margin-start">3</property>
<property name="margin-end">3</property> <property name="margin-end">3</property>
@ -408,7 +417,7 @@
<child> <child>
<object class="GtkButton" id="templateMonitorInfoConfigureButton"> <object class="GtkButton" id="templateMonitorInfoConfigureButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="halign">end</property> <property name="halign">end</property>
<property name="image">image3</property> <property name="image">image3</property>
@ -440,11 +449,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property> <property name="icon-name">process-stop-symbolic</property>
</object> </object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkImage" id="image8"> <object class="GtkImage" id="image8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -1323,83 +1327,94 @@
<widget name="mainExtraFixGapLabel"/> <widget name="mainExtraFixGapLabel"/>
</widgets> </widgets>
</object> </object>
<object class="GtkListStore" id="liststore1"/> <object class="GtkImage" id="image9">
<object class="GtkListStore" id="liststore2"/>
<object class="GtkListStore" id="liststore3"/>
<object class="GtkListStore" id="liststore4"/>
<object class="GtkListStore" id="liststore5">
<columns>
<!-- column-name GdkPixbuf1 -->
<column type="GdkPixbuf"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">g89</col>
<col id="1" translatable="yes">Settings</col>
<col id="2" translatable="yes">Settings</col>
</row>
</data>
</object>
<object class="GtkExpander" id="templateAppsPack">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="icon-name">go-bottom-symbolic</property>
</object>
<object class="GtkWindow" id="ProprietaryDriverChooseWindow">
<property name="width-request">450</property>
<property name="height-request">300</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-video</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkIconView" id="templateAppsIconView"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkTreeView" id="propriearyTreeView">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-left">15</property> <property name="model">liststore6</property>
<property name="margin-start">15</property> <property name="search-column">0</property>
<property name="margin">6</property> <property name="enable-tree-lines">True</property>
<property name="selection-mode">multiple</property> <property name="tooltip-column">2</property>
<property name="item-orientation">horizontal</property> <child internal-child="selection">
<property name="model">liststore5</property> <object class="GtkTreeSelection"/>
<property name="columns">1</property> </child>
<property name="activate-on-single-click">True</property>
<child> <child>
<object class="GtkCellRendererPixbuf"/> <object class="GtkTreeViewColumn" id="ProprietaryPackageColumn">
<property name="title" translatable="yes">Package</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryDriverColumn">
<property name="title" translatable="yes">Driver</property>
<child>
<object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="pixbuf">0</attribute> <attribute name="text">0</attribute>
</attributes> </attributes>
</child> </child>
<child>
<object class="GtkCellRendererText">
<property name="xalign">0</property>
<property name="single-paragraph-mode">True</property>
<property name="wrap-mode">word</property>
</object> </object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryDescriptionColumn">
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">1</attribute> <attribute name="text">1</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietarySupportedColumn">
<property name="title" translatable="yes">Supported Devices</property>
</object>
</child>
</object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
</object> <child>
</child>
<child type="label">
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkImage" id="templateAppsImage"> <object class="GtkButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="pixel-size">25</property> <property name="receives-default">True</property>
<property name="icon-name">applications-system</property> <property name="image">image9</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1408,10 +1423,11 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="templateAppsLabel"> <object class="GtkButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="label" translatable="yes">Settings</property> <property name="receives-default">True</property>
<property name="image">image11</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1419,68 +1435,25 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
<object class="GtkListStore" id="liststore6">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkWindow" id="ProprietaryDriverChooseWindow">
<property name="width-request">450</property>
<property name="height-request">300</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-video</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkTreeView"> <object class="GtkButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">liststore6</property> <property name="receives-default">True</property>
<property name="enable-tree-lines">True</property> <property name="image">image10</property>
<property name="tooltip-column">2</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryDriverColumn">
<property name="title" translatable="yes">Driver</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object> </object>
</child> <packing>
<child> <property name="expand">False</property>
<object class="GtkTreeViewColumn" id="ProprietaryDescriptionColumn"> <property name="fill">True</property>
<property name="title" translatable="yes">Description</property> <property name="position">2</property>
<child> </packing>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child> </child>
</object> </object>
<packing> <packing>
@ -1505,7 +1478,7 @@
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
<child> <child>
<object class="GtkButton" id="ProprietaryCloseButton"> <object class="GtkButton" id="ProprietaryCloseButton">
<property name="label" translatable="yes">Cancel</property> <property name="label" translatable="yes">Close</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -1517,28 +1490,106 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkListStore" id="liststore1"/>
<object class="GtkListStore" id="liststore2"/>
<object class="GtkListStore" id="liststore3"/>
<object class="GtkListStore" id="liststore4"/>
<object class="GtkListStore" id="liststore5">
<columns>
<!-- column-name GdkPixbuf1 -->
<column type="GdkPixbuf"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkExpander" id="templateAppsPack">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkButton" id="ProprietaryAcceptButton"> <object class="GtkIconView" id="templateAppsIconView">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="margin-left">15</property>
<property name="image">image7</property> <property name="margin-start">15</property>
<property name="margin">6</property>
<property name="selection-mode">multiple</property>
<property name="item-orientation">horizontal</property>
<property name="model">liststore5</property>
<property name="columns">1</property>
<property name="activate-on-single-click">True</property>
<child>
<object class="GtkCellRendererPixbuf"/>
<attributes>
<attribute name="pixbuf">0</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererText">
<property name="xalign">0</property>
<property name="single-paragraph-mode">True</property>
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
</object> </object>
</child>
<child type="label">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkImage" id="templateAppsImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">25</property>
<property name="icon-name">applications-system</property>
</object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property> <property name="position">0</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLabel" id="templateAppsLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Settings</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1548,6 +1599,19 @@
</child> </child>
</object> </object>
</child> </child>
<style>
<class name="workingbg"/>
</style>
</object>
<object class="GtkListStore" id="liststore6">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
</columns>
</object> </object>
<object class="GtkRadioButton" id="radioMainMonitor"> <object class="GtkRadioButton" id="radioMainMonitor">
<property name="label" translatable="yes">radiobutton</property> <property name="label" translatable="yes">radiobutton</property>
@ -1562,21 +1626,26 @@
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-video</property> <property name="icon-name">com.ublinux.ubl-settings-video</property>
<child> <child>
<object class="GtkBox" id="mainMonitorConfigurationBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkBox" id="templateMonitorConfigurationBox"> <object class="GtkBox" id="mainMonitorConfigurationBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="templateMonitorConfigurationBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -1756,10 +1825,29 @@
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
@ -1793,18 +1881,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1861,7 +1938,7 @@
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property> <property name="pack-type">end</property>
<property name="position">6</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-04 17:42+0000\n" "POT-Creation-Date: 2023-04-05 10:05+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,154 +17,188 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-video.c:151 #: source/ubl-settings-video.c:26 source/ubl-settings-video.c:223
msgid "About" msgid "Cancel"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:143 #: source/ubl-settings-video.c:27
msgid "Automatically choose and use driver" msgid "Accept"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:153 #: source/ubl-settings-video.c:28 source/ubl-settings-video.c:386
msgid "Change" msgid "Driver"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:131 #: source/ubl-settings-video.c:29
msgid "Configuration method" msgid "Description"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:41 #: source/ubl-settings-video.c:87 source/ubl-settings-video.c:392
msgid "DPMS off" msgid "UBlinux Video Configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:37 #: source/ubl-settings-video.c:89
msgid "Do not switch display off" msgid "Progect Home Page"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:150 #: source/ubl-settings-video.c:90
msgid "Documentation" msgid "Videocard and monitor configuration manager"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:130 #: source/ubl-settings-video.c:215
msgid "Driver" msgid "Monitor: "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:136 #: source/ubl-settings-video.c:216
msgid "Extra" msgid "Resolution (px): "
msgstr "" msgstr ""
#: source/ubl-settings-video.h:16 #: source/ubl-settings-video.c:217
msgid "Failed to load global configuration" msgid "Frequency (Hz): "
msgstr "" msgstr ""
#: source/ubl-settings-video.h:17 #: source/ubl-settings-video.c:218
msgid "Failed to load local configuration" msgid "Rotation: "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:129 #: source/ubl-settings-video.c:220
msgid "Failsafe driver AMD/ATI: " msgid "Main monitor"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:128 #: source/ubl-settings-video.c:221
msgid "Failsafe driver nVidia: " msgid "through parameter line:"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:135 #: source/ubl-settings-video.c:226 source/ubl-settings-video.c:231
msgid "Fix frame gap (nVidia)" #: source/ubl-settings-video.c:233 source/ubl-settings-video.c:236
#: source/ubl-settings-video.c:238 source/ubl-settings-video.c:258
msgid "Default settings"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:35 #: source/ubl-settings-video.c:374
msgid "Frequency (Hz): " msgid "Don't use"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:134 #: source/ubl-settings-video.c:375 source/ubl-settings-video.c:377
msgid "Hybrid graphics" msgid "Off"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:125 #: source/ubl-settings-video.c:376 source/ubl-settings-video.c:378
msgid "Launch programms through (nVidia)" msgid "fbdev"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:138 #: source/ubl-settings-video.c:380
msgid "Load" msgid "1st variant. May cause perfomance drops in video games"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:145 #: source/ubl-settings-video.c:381
msgid "Load from global configuration" msgid "2nd variant. May not work on specific video cards"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:146 #: source/ubl-settings-video.c:382
msgid "Load from local configuration" msgid "Video output configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:39 #: source/ubl-settings-video.c:383
msgid "Main monitor" msgid "Proprietary driver: "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:141 #: source/ubl-settings-video.c:384
msgid "Manual configuration" msgid "Failsafe driver nVidia: "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:132 #: source/ubl-settings-video.c:385
msgid "Failsafe driver AMD/ATI: "
msgstr ""
#: source/ubl-settings-video.c:388
msgid "Monitor configuration" msgid "Monitor configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:33 #: source/ubl-settings-video.c:389
msgid "Monitor: " msgid "Hybrid graphics"
msgstr ""
#: source/ubl-settings-video.c:390
msgid "Fix frame gap (nVidia)"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:142 #: source/ubl-settings-video.c:391
msgid "Extra"
msgstr ""
#: source/ubl-settings-video.c:393
msgid "Load"
msgstr ""
#: source/ubl-settings-video.c:394
msgid "Save"
msgstr ""
#: source/ubl-settings-video.c:396
msgid "On" msgid "On"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:127 #: source/ubl-settings-video.c:397
msgid "Proprietary driver: " msgid "Automatically choose and use driver"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:34 #: source/ubl-settings-video.c:398
msgid "Resolution (px): " msgid "Launch programms through optirun (nVidia): "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:36 #: source/ubl-settings-video.c:399
msgid "Rotation: " msgid "Launch programs through primusun (nVidia): "
msgstr "" msgstr ""
#: source/ubl-settings-video.c:139 #: source/ubl-settings-video.c:400
msgid "Save" msgid "discrete video only (AMD/ATI)"
msgstr ""
#: source/ubl-settings-video.c:402
msgid "Load from global configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:147 #: source/ubl-settings-video.c:403
msgid "Load from local configuration"
msgstr ""
#: source/ubl-settings-video.c:404
msgid "Save to global an local configuration" msgid "Save to global an local configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:148 #: source/ubl-settings-video.c:405
msgid "Save to global configuration" msgid "Save to global configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:149 #: source/ubl-settings-video.c:406
msgid "Save to local configuration" msgid "Save to local configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:19 #: source/ubl-settings-video.c:407
msgid "Saving to global configuration Succeeded" msgid "Documentation"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:20 #: source/ubl-settings-video.c:408
msgid "Saving to local configuration Succeeded" msgid "About"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:137 #: source/ubl-settings-video.c:438
msgid "UBlinux Video Configuration" msgid "Configuration has been loaded"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:126 #: source/ubl-settings-video.h:22
msgid "Video output configuration" msgid "Failed to load global configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:133 #: source/ubl-settings-video.h:23
msgid "discrete video only (AMD/ATI)" msgid "Failed to load local configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.c:40 #: source/ubl-settings-video.h:25
msgid "through parameter line:" msgid "Saving to global configuration Succeeded"
msgstr ""
#: source/ubl-settings-video.h:26
msgid "Saving to local configuration Succeeded"
msgstr "" msgstr ""

@ -0,0 +1,8 @@
VERSION_ID:DRV_PAСKAGE:DRV_NAME:DRV_DESCRIPTION:DRV_SUPPORT
:ubm-nvidia-340:nvidia-340:Пакет с модулем драйвера и утилиты NVIDIA 340xx:Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
:ubm-nvidia-390:nvidia-390:Пакет с модулем драйвера и утилиты NVIDIA 390xx:Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX
:ubm-nvidia-430:nvidia-430:Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты:Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
:ubm-nvidia-470:nvidia-470:Пакет с модулем драйвера и утилиты NVIDIA 470xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-510:nvidia-510:Пакет с модулем драйвера и утилиты NVIDIA 510xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-515:nvidia-515:Пакет с модулем драйвера и утилиты NVIDIA 515xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-optimus:nvidia-optimus:Пакет с модулем включает в себя NVIDIA Optimus:
1 VERSION_ID:DRV_PAСKAGE:DRV_NAME:DRV_DESCRIPTION:DRV_SUPPORT
2 :ubm-nvidia-340:nvidia-340:Пакет с модулем драйвера и утилиты NVIDIA 340xx:Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
3 :ubm-nvidia-390:nvidia-390:Пакет с модулем драйвера и утилиты NVIDIA 390xx:Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX
4 :ubm-nvidia-430:nvidia-430:Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты:Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
5 :ubm-nvidia-470:nvidia-470:Пакет с модулем драйвера и утилиты NVIDIA 470xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
6 :ubm-nvidia-510:nvidia-510:Пакет с модулем драйвера и утилиты NVIDIA 510xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
7 :ubm-nvidia-515:nvidia-515:Пакет с модулем драйвера и утилиты NVIDIA 515xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
8 :ubm-nvidia-optimus:nvidia-optimus:Пакет с модулем включает в себя NVIDIA Optimus:
Loading…
Cancel
Save