diff --git a/com.ublinux.ubl-settings-video.amd-logo.svg b/com.ublinux.ubl-settings-video.amd-logo.svg new file mode 100644 index 0000000..c75c6d2 --- /dev/null +++ b/com.ublinux.ubl-settings-video.amd-logo.svg @@ -0,0 +1,56 @@ + + + + + + + AMD icon + + + + + AMD icon + + + + diff --git a/com.ublinux.ubl-settings-video.intel-logo.svg b/com.ublinux.ubl-settings-video.intel-logo.svg new file mode 100644 index 0000000..fa4fcb2 --- /dev/null +++ b/com.ublinux.ubl-settings-video.intel-logo.svg @@ -0,0 +1,43 @@ + + + + + + + + diff --git a/com.ublinux.ubl-settings-video.nvidia-logo.svg b/com.ublinux.ubl-settings-video.nvidia-logo.svg new file mode 100644 index 0000000..d4f2d8b --- /dev/null +++ b/com.ublinux.ubl-settings-video.nvidia-logo.svg @@ -0,0 +1,65 @@ + + + + + + + generated by pstoedit version:3.44 from NVBadge_2D.eps + + + + + + + + generated by pstoedit version:3.44 from NVBadge_2D.eps + + + + diff --git a/com.ublinux.ubl-settings-video.video-card.svg b/com.ublinux.ubl-settings-video.video-card.svg new file mode 100644 index 0000000..7c30d8b --- /dev/null +++ b/com.ublinux.ubl-settings-video.video-card.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 009e8d4..b0fba42 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -8,6 +8,7 @@ include_directories(${GTK_INCLUDE_DIRS}) link_directories(${GTK_LIBRARY_DIRS}) add_definitions(${GTK_CFLAGS_OTHER}) + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ @@ -22,7 +23,8 @@ set(SOURCE_FILES set(LIBRARIES ${GTK_LIBRARIES} - pthread) + pthread + vte-2.91) add_executable(ubl-settings-video ${SOURCE_FILES}) diff --git a/source/ubl-settings-video-strings.h b/source/ubl-settings-video-strings.h index f15d6ef..a1bef55 100644 --- a/source/ubl-settings-video-strings.h +++ b/source/ubl-settings-video-strings.h @@ -25,19 +25,74 @@ #define MONITOR_SAVE_LABEL _("Save") #define MONITOR_CANCEL_LABEL _("Cancel") #define MONITOR_CHOOSE_PORT_LABEL _("Choose port to configure") +#define GAP_FIX_1_LABEL _("1st variant. May cause perfomance drops in video games") +#define GAP_FIX_2_LABEL _("2nd variant. May not work on specific video cards") +#define HEADER_LABEL _("Video output configuration") +#define FAILSAFE_NVIDIA_LABEL _("Failsafe driver nVidia: ") +#define FAILSAFE_ATI_LABEL _("Failsafe driver AMD/ATI: ") +#define DRIVER_LABEL _("Driver") +#define MONITOR_CONFIGURATION_LABEL _("Monitor configuration") +#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 LOAD_LABEL _("Load") +#define SAVE_LABEL _("Save") +#define ON_LABEL _("On") +#define OFF_LABEL _("Off") +#define FBDEV_LABEL _("fbdev") +#define AUTO_CHOOSE_DRIVERS_LABEL _("Automatically choose and use driver") +#define LAUNCH_OPTIRUN_LABEL _("Launch programms through optirun (nVidia): ") +#define LAUNCH_PRIMUSRUN_LABEL _("Launch programs through primusrun (nVidia): ") +#define DISCRETE_ONLY_LABEL _("discrete video only (AMD/ATI)") +#define LOAD_GLOBAL_LABEL _("Load from global configuration") +#define LOAD_LOCAL_LABEL _("Load from local configuration") +#define SAVE_GLOBAL_LOCAL_LABEL _("Save to global an local configuration") +#define SAVE_GLOBAL_LABEL _("Save to global configuration") +#define SAVE_LOCAL_LABEL _("Save to local configuration") +#define DOCUMENTATION_LABEL _("Documentation") +#define ABOUT_LABEL _("About") +#define INSTALLED_LABEL _("Installed") +#define PACKAGE_LABEL _("Package") +#define SUPPORTED_LABEL _("Supported Devices") +#define CANCEL_LABEL _("Cancel") +#define ACCEPT_LABEL _("Accept") +#define DONT_USE_LABEL _("Don't use") +#define INFORMATION_LABEL _("Information") +#define DRIVERS_LABEL _("Drivers") +#define MAIN_SETTINGS_LABEL _("Main settings") +#define DEVICES_DRIVERS_LABEL _("Devices and drivers") +#define DRIVER_MODULES_LABEL _("Driver modules") -#define MONITOR_POSITION_LEFT_PARAMETER _("lo:") -#define MONITOR_POSITION_RIGHT_PARAMETER _("ro:") -#define MONITOR_POSITION_ABOVE_PARAMETER _("ab:") -#define MONITOR_POSITION_BELOW_PARAMETER _("be:") +#define MONITOR_POSITION_LEFT_PARAMETER "lo:" +#define MONITOR_POSITION_RIGHT_PARAMETER "ro:" +#define MONITOR_POSITION_ABOVE_PARAMETER "ab:" +#define MONITOR_POSITION_BELOW_PARAMETER "be:" -#define MONITOR_ROTATE_PARAMETER _("rotate:") -#define MONITOR_ROTATE_NORMAL_PARAMETER _("normal") -#define MONITOR_ROTATE_LEFT_PARAMETER _("left") -#define MONITOR_ROTATE_RIGHT_PARAMETER _("right") -#define MONITOR_ROTATE_INVERTED_PARAMETER _("invert") + +#define MONITOR_ROTATE_PARAMETER "rotate:" +#define MONITOR_ROTATE_NORMAL_PARAMETER "normal" +#define MONITOR_ROTATE_LEFT_PARAMETER "left" +#define MONITOR_ROTATE_RIGHT_PARAMETER "right" +#define MONITOR_ROTATE_INVERTED_PARAMETER "invert" #define MONITOR_PORT_ERROR_LABEL _("Error: Port must be chosen to save") -#define MONITOR_PORT_SUCCESS_LABEL _("Monitor configuration succeedeed") \ No newline at end of file +#define MONITOR_PORT_SUCCESS_LABEL _("Monitor configuration succeedeed") + +#define GLOBAL_LOAD_SUCCESS _("Global configuration loading succseeded.") +#define LOCAL_LOAD_SUCCESS _("Local configuration loading succseeded.") + +#define GLOBAL_LOCAL_SAVE_SUCCESS _("Local and global configuration saving succseeded.") +#define GLOBAL_SAVE_SUCCESS _("Global configuration saving succseeded.") +#define LOCAL_SAVE_SUCCESS _("Local configuration saving succseeded.") + +#define YES_LABEL _("Yes") +#define NO_LABEL _("No") + +#define DESCRIPTION_LABEL _("Description") +#define VENDOR_LABEL _("Vendor") +#define MODEL_LABEL _("Model") +#define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use") +#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules") \ No newline at end of file diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 4161d57..3108062 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -18,7 +18,9 @@ void on_subwindow_close(GtkWidget *self) void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ monitorconfig *config = yon_dictionary_get_data(window->config,monitorconfig*); if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo))==0){ - _yon_ubl_status_box_render(videoconfig.status_render.box,videoconfig.status_render.icon,videoconfig.status_render.label,MONITOR_PORT_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + videoconfig.status_render.text_to_render=MONITOR_PORT_ERROR_LABEL; + videoconfig.status_render.type=BACKGROUND_IMAGE_FAIL_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); return; } config->main=0; @@ -32,7 +34,9 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ config->port=NULL; config->resolution=NULL; config->frequency=NULL; - _yon_ubl_status_box_render(videoconfig.status_render.box,videoconfig.status_render.icon,videoconfig.status_render.label,MONITOR_PORT_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=MONITOR_PORT_SUCCESS_LABEL; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); config->port = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationPortCombo)); window->config->key = yon_char_new(config->port); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->templateMonitorConfigurationParameterLineCheck))==0){ @@ -48,14 +52,13 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ config->position_port = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationPositionPortCombo)); } - config->resolution=yon_char_divide_search(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo))," ",-1); + if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo))!=0) { + config->resolution = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo)); int rotation = gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationRotationCombo)); if (rotation==1) config->rotation=rotation; else if (rotation==2) config->rotation=rotation; else if (rotation==3) config->rotation=rotation; else config->rotation=0; - if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo))!=0) { - char *resolution = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo)); } if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo))!=0) { char *frequency = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo)); @@ -68,73 +71,172 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ on_subwindow_close(self); } -// void on_save_window_configuration(GtkWidget *self, MonitorSettings *monitor){ -// char *port=NULL; -// port=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationPortCombo)); -// if (!monitor->curconfig){ -// monitorconfig *confi = new(monitorconfig); -// if (!videoconfig.monitors) videoconfig.monitors=yon_dictionary_create_with_data(port,confi); -// else videoconfig.monitors=yon_dictionary_create_with_data_connected(videoconfig.monitors,port,confi); -// monitor->curconfig=videoconfig.monitors; -// } -// char *freq=NULL; -// char *res=NULL; -// char *rot=NULL; -// char *entr=NULL; -// char *def=NULL; -// def=_("Default settings"); -// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(monitor->templateMonitorConfigurationMainRadio))==1) -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->main=1; -// if (strcmp((freq=yon_char_new((char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationFrequencyCombo)))),def)!=0) -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->frequency=freq; -// else yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->frequency=NULL; -// if (strcmp((res=yon_char_new((char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationResolutionCombo)))),def)!=0) -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->resolution=res; -// else yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->resolution=NULL; -// if (strcmp((rot=yon_char_new((char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationRotationCombo)))),def)!=0) -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation=rot; -// else yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation=NULL; -// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(monitor->templateMonitorConfigurationParameterLineCheck))){ -// entr=yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(monitor->templateMonitorConfigurationParameterLineEntry))); -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->stringparameters=entr; -// } else { -// char *str=NULL; -// str = ""; -// if (yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->frequency!=NULL) -// str=yon_char_get_augumented(str,yon_char_get_augumented(yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->frequency,",")); -// if (yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->resolution!=NULL) -// str=yon_char_get_augumented(str,yon_char_get_augumented(yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->resolution,",")); -// if (yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation!=NULL) -// if (strcmp(yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation,_("Right"))==0) -// str=yon_char_get_augumented(str,"rotation:right,"); -// else if (strcmp(yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation,_("Left"))==0) -// str=yon_char_get_augumented(str,"rotation:left,"); -// else if (strcmp(yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->rotation,_("Invert"))==0) -// str=yon_char_get_augumented(str,"rotation:invert,"); -// else -// str=yon_char_get_augumented(str,"rotation:normal,"); - -// if (yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->main!=0) -// str=yon_char_get_augumented(str,"primary,"); -// if (strcmp(str,"")!=0) -// yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->stringparameters=str; - -// } -// dictionary *dict=NULL; -// // for_dictionaries (dict,videoconfig.videoconfig){ -// // MonitorSettings *monitorsett=yon_dictionary_get_data(dict,MonitorSettings*); -// // if (monitorsett->curconfig==monitor->curconfig){ -// // yon_parse_monitor(monitorsett->curconfig,yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->stringparameters); -// // gtk_label_set_text(GTK_LABEL(monitorsett->templateMonitorInfoResolutionLabel),yon_dictionary_get_data(monitor->curconfig,monitorconfig*)->resolution); -// // if (yon_dictionary_get_data(monitorsett->curconfig,monitorconfig*)->main==0) -// // gtk_label_set_text(GTK_LABEL(monitorsett->templateMonitorInfoNameLabel), yon_char_get_augumented("Monitor ", ((monitorconfig *)monitorsett->curconfig->data)->port)); -// // if (yon_dictionary_get_data(monitorsett->curconfig,monitorconfig*)->main==1) -// // gtk_label_set_text(GTK_LABEL(monitorsett->templateMonitorInfoNameLabel), yon_char_get_augumented("Monitor ", yon_char_get_augumented(((monitorconfig *)monitorsett->curconfig->data)->port,"*"))); - -// // } -// // } -// on_subwindow_close(self); -// }; +void on_terminal_done(GtkWidget *terminal, int size, widgets_dict *widgets){ + char *text=vte_terminal_get_text_range(VTE_TERMINAL(terminal),0,0,0,10,NULL,NULL,NULL); + printf("\"%s\"\n",text); + gtk_widget_destroy(terminal); +} + +void on_terminal_more(GtkWidget *self, widgets_dict *widgets){ + int active = gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->TerminalMoreRevieler)); + if (active ==1) active = 0; + else active=1; +gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalMoreRevieler),active); +} + +void on_terminal_destroy(GtkWidget *self, widgets_dict *widgets){ + gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0); + gtk_widget_destroy(widgets->TerminalRevealer); + yon_proprieary_get(); + yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); +} + +static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer user_data) +{ + if (!terminal) return; + if (pid == -1) printf("Error\n\n\n"); + else vte_terminal_feed_child(VTE_TERMINAL(terminal),(char*)user_data,strlen((char*)user_data)); +} + +void on_terminal_check_progress(VteTerminal *terminal, widgets_dict *widgets){ + char *text = vte_terminal_get_text(terminal,NULL,NULL,NULL); + // printf("%d - %s\n",rows, text); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),(double)yon_char_find_count(text,"::")/4); +} + +void yon_terminal_start(widgets_dict *widgets, char *usr_command){ + char **command=new_arr(char*,2); + gchar **envp = g_get_environ(); + command[0]=(gchar *)g_strdup(g_environ_getenv(envp, "SHELL")); + command[1]=NULL; + char **env=new_arr(char*,2); + env[0]=""; + env[1]=NULL; + + GtkBuilder *builder=gtk_builder_new_from_file(glade_path); + widgets->TerminalBox = yon_gtk_builder_get_widget(builder, "TerminalBox"); + widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer"); + widgets->TerminalMoreRevieler = yon_gtk_builder_get_widget(builder, "TerminalMoreRevieler"); + widgets->TerminalMoreButton = yon_gtk_builder_get_widget(builder, "TerminalMoreButton"); + widgets->TerminalScroll = yon_gtk_builder_get_widget(builder, "TerminalScroll"); + widgets->TerminalInfoLabel = yon_gtk_builder_get_widget(builder, "TerminalInfoLabel"); + + GtkWidget *terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal"); + vte_terminal_set_size(VTE_TERMINAL(terminal),10,15); + gtk_widget_set_app_paintable(terminal,1); + gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"opacited"); + gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"workingbg"); + gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->TerminalRevealer); + g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(on_terminal_done), widgets); + g_signal_connect(G_OBJECT(terminal), "contents-changed", G_CALLBACK(on_terminal_check_progress), widgets); + g_signal_connect(G_OBJECT(widgets->TerminalMoreButton), "clicked", G_CALLBACK(on_terminal_more), widgets); + g_signal_connect(G_OBJECT(terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets); + gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1); + VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL); + vte_terminal_set_pty(VTE_TERMINAL(terminal),pty); + char *install_command=yon_char_unite("tput cup 0 0 && tput ed; ",usr_command," ; sleep 5;exit 0","\n",NULL); + vte_terminal_spawn_async(VTE_TERMINAL(terminal), + VTE_PTY_DEFAULT, + NULL, + command, + NULL, + 0, + NULL, NULL, + NULL, + -1, + NULL, + child_ready, + install_command); + vte_pty_spawn_async(pty, + NULL, + command, + NULL, + 0, + NULL, NULL, + NULL, + -1, + NULL, + NULL, + NULL); + vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 100); + vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), TRUE); + vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); + gtk_widget_show_all(widgets->TerminalRevealer); +} + +void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){ + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + yon_terminal_start(widgets,yon_char_get_augumented(install_proprietary_command,name)); + + +} + +void on_driver_install(GtkWidget *self,widgets_dict *widgets){ + + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + yon_terminal_start(widgets,yon_char_get_augumented(install_proprietary_command,name)); +} + +void on_driver_pack_delete(GtkWidget *self,widgets_dict *widgets){ + + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + yon_terminal_start(widgets,yon_char_get_augumented(delete_proprietary_command,name)); +} + +void on_driver_delete(GtkWidget *self,widgets_dict *widgets){ + + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + yon_terminal_start(widgets,yon_char_get_augumented(delete_proprietary_command,name)); +} + +void on_driver_pack_info(GtkWidget *self, widgets_dict *widgets){ + + pthread_attr_t attr; + pthread_t tid; + pthread_attr_init(&attr); + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + pthread_create(&tid,&attr,(void*)yon_launch_app,yon_char_get_augumented(get_info_proprietary_command,name)); +} + +void on_driver_info(GtkWidget *self,widgets_dict *widgets){ + + pthread_attr_t attr; + pthread_t tid; + pthread_attr_init(&attr); + GtkTreeIter iter; + char *name; + GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView)); + gtk_tree_selection_get_selected(selection,&list_s,&iter); + gtk_tree_model_get(list_s,&iter,1,&name,-1); + pthread_create(&tid,&attr,(void*)yon_launch_app,yon_char_get_augumented(get_info_proprietary_command,name)); + +} void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){ monitorconfig* config = yon_dictionary_get_data(window->config,monitorconfig*); @@ -169,20 +271,6 @@ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){ } } -void on_save_driver_configuration(GtkWidget *self,combo_tree *widgets){ - GtkTreeIter iter; - char *name; - GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list); - GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree)); - gtk_tree_selection_get_selected(selection,&list_s,&iter); - gtk_tree_model_get(list_s,&iter,0,&name,-1); - int ret = yon_gtk_combo_box_text_find(widgets->combo,name); - if (ret!=-1) - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->combo),ret); - - on_subwindow_close(self); -} - void on_sensitive_change(GtkWidget *self, GtkWidget *toggle) { int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); @@ -200,18 +288,13 @@ void on_sensitive_change_reversed(GtkWidget *self, GtkWidget *toggle) void on_auto_choose_drivers(GtkWidget *self, widgets_dict *widgets) { int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); - + videoconfig.autoChooseDrivers=state; gtk_widget_set_sensitive(widgets->mainDriverFailsafeNvidiaLabel, !state); gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDCombo, !state); gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDLabel, !state); gtk_widget_set_sensitive(widgets->mainDriverFailsafeNvidiaCombo, !state); } -// void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors) -// { -// gtk_widget_destroy(monitors->templateMonitorConfigurationWindow); -// } - char *yon_configuration_get_save_command(char *command){ char *str = NULL; char *dntus = NULL; @@ -220,21 +303,34 @@ char *yon_configuration_get_save_command(char *command){ if (videoconfig.autoChooseDrivers==0){ if (strcmp(videoconfig.failsafenVidia, dntus)!=0) str = yon_char_get_augumented(str, yon_char_get_augumented(" FAILSAFENVIDIA=", videoconfig.failsafenVidia)); + else + str = yon_char_get_augumented(str," FAILSAFENVIDIA=\"\""); if (strcmp(videoconfig.failsafeATI, dntus)!=0) str = yon_char_get_augumented(str, yon_char_get_augumented(" FAILSAFEATI=", videoconfig.failsafeATI)); + else + str = yon_char_get_augumented(str," FAILSAFEATI=\"\""); + str=yon_char_get_augumented(str," VGADRV_AUTO=NO"); + } else { + str = yon_char_unite(str, " FAILSAFENVIDIA=\"\" FAILSAFEATI=\"\" VGADRV_AUTO=YES", NULL); + } if (strcmp(videoconfig.optirun, dntus)!=0&&strcmp(videoconfig.optirun, "")!=0) - str = yon_char_get_augumented(str, yon_char_get_augumented(" OPTIRUN=", videoconfig.optirun)); + str = yon_char_get_augumented(str, yon_char_unite(" OPTIRUN=","\"",videoconfig.optirun,"\"",NULL)); + else + str = yon_char_get_augumented(str, yon_char_unite(" OPTIRUN=\"\"",NULL)); if (strcmp(videoconfig.primusrun, dntus)!=0&&strcmp(videoconfig.primusrun, "")!=0) - str = yon_char_get_augumented(str, yon_char_get_augumented(" PRIMUSRUN=", videoconfig.primusrun)); + str = yon_char_get_augumented(str, yon_char_unite(" PRIMUSRUN=","\"", videoconfig.primusrun,"\"",NULL)); + else + str = yon_char_get_augumented(str, yon_char_unite(" PRIMUSRUN=\"\"",NULL)); dictionary *dict=NULL; + for (int i=0;istringparameters){ - - str=yon_char_get_augumented(str, yon_config_make_save_parameter_with_multiple_arguments(yon_dictionary_get_data(dict,monitorconfig*)->stringparameters,XORG_MONITOR(dict->key),",")); - - } + str=yon_char_unite(str," XORG_MONITOR[",dict->key,"]=\"",yon_dictionary_get_data(dict,monitorconfig*)->stringparameters,"\"", NULL); + } } if (strcmp(str,command)!=0) @@ -265,8 +361,8 @@ char *yon_configuration_get_remove_command(char *command){ str = yon_char_get_augumented(str, " OPTIRUN"); str = yon_char_get_augumented(str, " PRIMUSRUN"); dictionary *dict=NULL; - for_dictionaries(dict,videoconfig.monitors){ - str = yon_char_get_augumented(str, yon_char_get_augumented(" XORG_MONITOR[", yon_char_get_augumented(dict->key, "]"))); + for(int i=0;imainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Local configuration saving succseeded."), BACKGROUND_IMAGE_SUCCESS_TYPE); + + videoconfig.status_render.text_to_render=LOCAL_SAVE_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); } // else // yon_ubl_status_box_render(widgets->mainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Local configuration saving failed."), BACKGROUND_IMAGE_FAIL_TYPE); @@ -296,12 +396,16 @@ void on_configuration_save_local_global(GtkWidget *self, widgets_dict *widgets) { on_configuration_save_global(self, widgets); on_configuration_save_local(self, widgets); - yon_ubl_status_box_render(widgets->mainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Local and global configuration saving succseeded."), BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=GLOBAL_LOCAL_SAVE_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); } void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets) { - yon_ubl_status_box_render(widgets->mainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Global configuration saving succseeded."), BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=GLOBAL_SAVE_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); yon_update_config(widgets); char *str = NULL; if (videoconfig.failsafenVidia) @@ -312,7 +416,7 @@ void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets) str = yon_char_get_augumented(str, yon_char_get_augumented(" ", videoconfig.optirun)); if (videoconfig.primusrun) str = yon_char_get_augumented(str, yon_char_get_augumented(" ", videoconfig.primusrun)); - printf(str); + // printf(str); yon_config_save(str); } @@ -326,7 +430,9 @@ void yon_update_config(widgets_dict *widgets) void on_configuration_load_local(GtkWidget *self, widgets_dict *widgets) { - yon_ubl_status_box_render(widgets->mainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Local configuration loading succseeded."), BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=LOCAL_LOAD_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); char *command = load_drivers_local_command; dictionary *dct; for_dictionaries(dct, videoconfig.monitors) @@ -342,7 +448,9 @@ void on_configuration_load_local(GtkWidget *self, widgets_dict *widgets) void on_configuration_load_global(GtkWidget *self, widgets_dict *widgets) { - yon_ubl_status_box_render(widgets->mainStatusBox, widgets->mainStatusIcon, widgets->mainStatusLabel, _("Global configuration loading succseeded."), BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=GLOBAL_LOAD_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); char *command = load_drivers_global_command; dictionary *dct; for_dictionaries(dct, videoconfig.monitors) @@ -363,9 +471,9 @@ void on_monitor_delete(GtkWidget *self,monitor_view windowd){ monitor_window *window = yon_dictionary_get_data(windowd,monitor_window*); if(window&&window->config){ gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(window->templateMonitorscreenOverlay)),window->templateMonitorscreenOverlay); - yon_dictionary_rip(windowd); + videoconfig.monitor_visuals = yon_dictionary_rip(windowd); gtk_widget_destroy(window->templateMonitorscreenOverlay); - yon_dictionary_rip(window->config); + videoconfig.monitors = yon_dictionary_rip(window->config); free(window); } } @@ -392,6 +500,22 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){ } } +// void on_monitor_string_edit(GtkWidget *self,monitor_edit_window *monitor){ +// int size=0; +// config_str rtn = yon_char_parse((char*)gtk_entry_get_text(GTK_ENTRY(monitor->templateMonitorConfigurationParameterLineEntry)),&size,","); +// if (yon_char_parsed_check_exist(rtn,size,"enable")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationEnableCheck)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationResolutionCombo)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationFrequencyCombo)); +// if (yon_char_parsed_check_exist(rtn,size,"rotate")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationRotationCombo)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationPositionPosCombo)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_COMBO_BOX_TEXT(monitor->templateMonitorConfigurationPositionPortCombo)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationDoNotSwitchOffCheck)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationModelineCVTCheck)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationUseCVTReducedCheck)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationModelineGTFCheck)); +// if (yon_char_parsed_check_exist(rtn,size,"")!=-1) GTK_CHECK_BUTTON(monitor->templateMonitorConfigurationMainCheck)); +// } + void on_monitor_configure(GtkWidget *self,monitor_window *window){ if(window&&window->config){ monitor_edit_window *monitors = new(monitor_edit_window); @@ -409,7 +533,6 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){ monitors->templateMonitorConfigurationFrequencyLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationFrequencyLabel")); monitors->templateMonitorConfigurationFrequencyCombo = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationFrequencyCombo")); monitors->templateMonitorConfigurationRotationLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationRotationLabel")); - // monitors->templateMonitorConfigurationDoNotSwitchOffLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationDoNotSwitchOffLabel")); monitors->templateMonitorConfigurationRotationCombo = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationRotationCombo")); monitors->templateMonitorConfigurationPositionLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationPositionLabel")); monitors->templateMonitorConfigurationPositionPosCombo = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorConfigurationPositionPosCombo")); @@ -457,7 +580,7 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){ dictionary *dict=NULL; for (int i=0;istringparameters) + if (!check_if_exists||!yon_dictionary_get_data(check_if_exists,monitorconfig*)->stringparameters||check_if_exists==monitors->config) gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPortCombo),videoconfig.ports[i]); } @@ -531,6 +654,7 @@ void yon_monitor_window_update(monitor_edit_window *window){ } + /**void yon_monitor_view_draw_all(GtkWidget *cnt) * [EN] */ @@ -551,7 +675,9 @@ void yon_monitor_view_draw_all(GtkWidget *cnt){ for_dictionaries(dict,videoconfig.monitor_visuals){ monitor_window *window = yon_dictionary_get_data(dict,monitor_window*); if(dict->first==dict) {} - else gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0); + else { + gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0); + } } monitor_window *window = yon_dictionary_get_data(videoconfig.monitor_visuals->first,monitor_window*); gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0); @@ -589,8 +715,20 @@ void yon_monitor_view_update(){ gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoNameLabel),yon_char_get_augumented(MONITOR_LABEL,monitor->config->key)); else gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoNameLabel),yon_char_get_augumented(MONITOR_LABEL,"")); + monitorconfig *params=yon_dictionary_get_data(yon_dictionary_get_data(dict,monitor_window*)->config,monitorconfig*); + gtk_widget_set_sensitive(yon_dictionary_get_data(dict,monitor_window*)->templateMonitorImage,params->enable); if (config->resolution) gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoResolutionLabel),config->resolution); + else if (params->stringparameters){ + int size=0; + config_str rtn=yon_char_parse(params->stringparameters,&size,","); + char *res=yon_char_parsed_get_resolution(rtn,size); + if (res&&strcmp(res,"")!=0) + gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoResolutionLabel),res); + else + gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoResolutionLabel),PARAMETER_DEFAULT_LABEL); + + } else gtk_label_set_text(GTK_LABEL(monitor->templateMonitorInfoResolutionLabel),PARAMETER_DEFAULT_LABEL); } @@ -773,9 +911,9 @@ void on_config_fill_interface(widgets_dict *widgets) gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo)); str = videoconfig.failsafenVidia; - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), _("Don't use")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), _("fbdev")); - if (str) + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), DONT_USE_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), FBDEV_LABEL); + if (str&&videoconfig.autoChooseDrivers==0) { gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeNvidiaCombo), 1); } @@ -784,14 +922,17 @@ void on_config_fill_interface(widgets_dict *widgets) gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo)); str = videoconfig.failsafeATI; - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), _("Don't use")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), _("fbdev")); - if (str) + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), DONT_USE_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), FBDEV_LABEL); + if (str&&videoconfig.autoChooseDrivers==0) { gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeAMDCombo), 1); } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeAMDCombo), 0); + if (videoconfig.autoChooseDrivers==1){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->mainDriverAutomaticallyChooseCheck),1); + } dictionary *dict = NULL; } @@ -799,34 +940,55 @@ void on_config_fill_interface(widgets_dict *widgets) * [EN] */ dictionary *yon_proprieary_get(){ + videoconfig.proprietary=NULL; + int drivers_size=0; + config_str drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size); int size=0; - char **rtn = yon_config_load(get_proprietary_drivers_command,&size); - - for (int i=0;idata,&size,":"); gtk_list_store_append(list,&iter); - gtk_list_store_set(list,&iter,1,str[1],2,str[2],3,str[3],4,str[4],-1); + gtk_list_store_set(list,&iter,1,str[0],2,str[1],3,str[2],4,str[3],-1); + if (strstr(dict->key," installed")) + gtk_list_store_set(list,&iter,0,1,-1); } } +char *yon_char_remove_brackets(char* source){ + if (source){ + char *src=yon_char_new(source); + if (src[0]=='\"') yon_char_divide_search(src,"\"",-1); + if (src[strlen(src)-1]=='\"') src=yon_char_divide_search(src,"\"",-1); + return src; + } + return NULL; +} + /**void yon_setup_config(char *configcommand) * [EN] */ @@ -846,35 +1008,48 @@ void yon_setup_config(char *configcommand) videoconfig.configsize=0; videoconfig.loaded_config = yon_ubl_load_global_config(command, &videoconfig.configsize); char *param = NULL; + param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"VGADRV_AUTO"); + if (param){ + yon_char_divide_search(param,"=",-1); + if (strcmp(param,"")!=0) + videoconfig.autoChooseDrivers=1; + + } param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"FAILSAFENVIDIA"); if (param){ yon_char_divide_search(param,"=",-1); + if (strcmp(param,"")!=0) videoconfig.failsafenVidia=yon_char_new(param); } param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"FAILSAFEATI"); if (param){ yon_char_divide_search(param,"=",-1); + if (strcmp(param,"")!=0) videoconfig.failsafeATI=yon_char_new(param); } param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"OPTIRUN"); if (param){ yon_char_divide_search(param,"=",-1); - videoconfig.optirun=yon_char_new(param); + videoconfig.optirun=yon_char_remove_brackets(yon_char_new(param)); + if (strcmp(videoconfig.optirun,"")==0) videoconfig.optirun=NULL; } param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"PRIMUSRUN"); if (param){ yon_char_divide_search(param,"=",-1); - videoconfig.primusrun=yon_char_new(param); + videoconfig.primusrun=yon_char_remove_brackets(yon_char_new(param)); + if (strcmp(videoconfig.primusrun,"")==0) videoconfig.primusrun=NULL; } for (int i=0;ipropriearyTreeView = yon_gtk_builder_get_widget(builder, "propriearyTreeView"); - widgets->ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDriverColumn")); - widgets->ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDescriptionColumn")); - - widgets->ProprietaryCloseButton = yon_gtk_builder_get_widget(builder, "ProprietaryCloseButton"); - widgets->ProprietaryAcceptButton = yon_gtk_builder_get_widget(builder, "ProprietaryAcceptButton"); - if(!videoconfig.list) - videoconfig.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore6")); - gtk_list_store_clear(videoconfig.list); - yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); - gtk_button_set_label(GTK_BUTTON(widgets->ProprietaryCloseButton), _("Cancel")); - gtk_button_set_label(GTK_BUTTON(widgets->ProprietaryAcceptButton), _("Accept")); - gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->propriearyTreeView),GTK_TREE_MODEL(videoconfig.list)); - gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), _("Installed")); - gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), _("Package")); - gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), _("Supported Devices")); - gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), _("Driver")); - gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDescriptionColumn), _("Description")); - gtk_widget_show(widgets->window); - g_signal_connect(G_OBJECT(widgets->ProprietaryCloseButton), "clicked", G_CALLBACK(on_subwindow_close), NULL); - combo_tree *trcm=NULL; - trcm=malloc(sizeof(combo_tree)); - trcm->combo=comboe; - trcm->tree=widgets->propriearyTreeView; - g_signal_connect(G_OBJECT(widgets->ProprietaryAcceptButton), "clicked", G_CALLBACK(on_save_driver_configuration), trcm); -} - /** monitor_config yon_monitor_config_new(char *port) * [EN] */ @@ -982,8 +1123,12 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_ monitor->position=3; if (yon_char_parsed_check_exist(cnf,size,"ab:")!=-1) monitor->position=3; - if (yon_char_parsed_check_exist(cnf,size,"rotate:")!=-1) - monitor->rotation=0; + if (yon_char_parsed_check_exist(cnf,size,"rotate:left")!=-1) + monitor->rotation=1; + if (yon_char_parsed_check_exist(cnf,size,"rotate:right")!=-1) + monitor->rotation=2; + if (yon_char_parsed_check_exist(cnf,size,"rotate:invert")!=-1) + monitor->rotation=3; if (yon_char_parsed_check_exist(cnf,size,"dpms")!=-1) monitor->dpms=1; if (yon_char_parsed_check_exist(cnf,size,"nodpms")!=-1) @@ -992,91 +1137,25 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_ monitor->cvt=1; if (yon_char_parsed_check_exist(cnf,size,"reduced")!=-1) monitor->reduced=1; - if (yon_char_parsed_check_exist(cnf,size,"r")!=-1) + if (yon_char_parsed_check_exist(cnf,size,"r,")!=-1) monitor->reduced=1; if (yon_char_parsed_check_exist(cnf,size,"gtf")!=-1) monitor->gtf=1; } } -// MonitorSettings *yon_setup_monitor_settings() -// { -// int monitors_n = videoconfig.portssize; -// MonitorSettings *monitors = NULL; -// monitors = malloc(sizeof(MonitorSettings) * (monitors_n+1)); -// // videoconfig.videoconfig=videoconfig.videoconfig->first; -// int i=0; -// if (videoconfig.monitors){ -// for (i = 0; i < monitors_n; i++) -// { -// GtkBuilder *builder = gtk_builder_new_from_file(glade_path); -// monitors[i].templateMonitorscreenOverlay = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorscreenOverlay")); -// monitors[i].templateMonitorInfoBox = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoBox")); -// monitors[i].templateMonitorInfoNameLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoNameLabel")); -// monitors[i].templateMonitorImage = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorImage")); -// monitors[i].templateMonitorInfoResolutionLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoResolutionLabel")); -// monitors[i].templateMonitorInfoConfigureButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoConfigureButton")); -// monitors[i].templateMonitorDeleteButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorDeleteButton")); -// monitors[i].templateMonitorSwitchButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorSwitchButton")); -// monitors[i].curconfig = yon_dictionary_get_nth(videoconfig.monitors, i); -// printf("%d\n", i); -// if (yon_dictionary_get_data(monitors[i].curconfig,monitorconfig*)->main==0) -// gtk_label_set_text(GTK_LABEL(monitors[i].templateMonitorInfoNameLabel), yon_char_get_augumented("Monitor ", ((monitorconfig *)monitors[i].curconfig->data)->port)); -// if (yon_dictionary_get_data(monitors[i].curconfig,monitorconfig*)->main==1) -// gtk_label_set_text(GTK_LABEL(monitors[i].templateMonitorInfoNameLabel), yon_char_get_augumented("Monitor ", yon_char_get_augumented(((monitorconfig *)monitors[i].curconfig->data)->port,"*"))); -// char *res = yon_char_get_augumented(((monitorconfig *)monitors[i].curconfig->data)->resolution, ""); -// if (yon_dictionary_get_data(monitors[i].curconfig,monitorconfig*)->enable==1) -// gtk_widget_set_sensitive(monitors[i].templateMonitorImage,1); -// if (!res) -// res = _("Default settings"); -// gtk_label_set_text(GTK_LABEL(monitors[i].templateMonitorInfoResolutionLabel), res); -// gtk_overlay_add_overlay(GTK_OVERLAY(monitors[i].templateMonitorscreenOverlay), monitors[i].templateMonitorInfoBox); -// g_signal_connect(G_OBJECT(monitors[i].templateMonitorInfoConfigureButton), "clicked", G_CALLBACK(on_confugure_monitor_settings), &monitors[i]); -// g_signal_connect(G_OBJECT(monitors[i].templateMonitorDeleteButton), "clicked", G_CALLBACK(on_confugure_monitor_settings), &monitors[i]); -// g_signal_connect(G_OBJECT(monitors[i].templateMonitorSwitchButton), "clicked", G_CALLBACK(on_confugure_monitor_settings), &monitors[i]); -// if (i==0) -// videoconfig.videoconfig = yon_dictionary_create_with_data(((monitorconfig *)monitors[i].curconfig->data)->port,&monitors[i]); -// else -// videoconfig.videoconfig = yon_dictionary_create_with_data_connected(videoconfig.videoconfig,((monitorconfig *)monitors[i].curconfig->data)->port,&monitors[i]); -// if (videoconfig.monitors->next) -// videoconfig.monitors = videoconfig.monitors->next; -// } -// } -// GtkBuilder *builder = gtk_builder_new_from_file(glade_path); -// monitors[i].templateMonitorscreenOverlay = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorscreenOverlay")); -// monitors[i].templateMonitorInfoBox = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoBox")); -// monitors[i].templateMonitorInfoNameLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoNameLabel")); -// monitors[i].templateMonitorImage = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorImage")); -// monitors[i].templateMonitorInfoResolutionLabel = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoResolutionLabel")); -// monitors[i].templateMonitorInfoConfigureButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoConfigureButton")); -// monitors[i].templateMonitorDeleteButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorDeleteButton")); -// monitors[i].templateMonitorSwitchButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorSwitchButton")); -// monitors[i].templateMonitorInfoAddButton = GTK_WIDGET(gtk_builder_get_object(builder, "templateMonitorInfoAddButton")); -// gtk_widget_show(monitors[i].templateMonitorInfoAddButton); -// gtk_widget_hide(monitors[i].templateMonitorSwitchButton); -// gtk_widget_hide(monitors[i].templateMonitorDeleteButton); -// gtk_widget_hide(monitors[i].templateMonitorInfoConfigureButton); -// monitors[i].curconfig = NULL; -// gtk_label_set_text(GTK_LABEL(monitors[i].templateMonitorInfoNameLabel), ""); -// gtk_widget_set_sensitive(monitors[i].templateMonitorImage,0); -// gtk_label_set_text(GTK_LABEL(monitors[i].templateMonitorInfoResolutionLabel), ""); -// gtk_overlay_add_overlay(GTK_OVERLAY(monitors[i].templateMonitorscreenOverlay), monitors[i].templateMonitorInfoBox); -// g_signal_connect(G_OBJECT(monitors[i].templateMonitorInfoAddButton), "clicked", G_CALLBACK(on_confugure_monitor_settings), &monitors[i]); -// if (i==0) -// videoconfig.videoconfig = yon_dictionary_create_with_data("TEMPLATE",&monitors[i]); -// else -// videoconfig.videoconfig = yon_dictionary_create_with_data_connected(videoconfig.videoconfig,"TEMPLATE",&monitors[i]); -// return monitors; -// } - -int yon_char_get_if_resolution(char *parsed_string){ - char *left=NULL, *right=NULL; - right=yon_char_new(parsed_string); - left=yon_char_divide_search(right,"x",1); - if (left&&right) - if (atoi(left)&&atoi(right)) - return 1; - return 0; +char *yon_char_parsed_get_resolution(config_str parsed_string, int size){ + char *left=NULL, *right=NULL, *freq=NULL; + for (int i=0;iInformationOverlay),widgets->InformationCompanyLogoImage); + config_str rtn=yon_config_load(get_adapter_info,&size); + char *desc = yon_config_get_parameter(rtn,size,"description"); + yon_char_divide_search(desc,"=",-1); + char *product = yon_config_get_parameter(rtn,size,"product"); + yon_char_divide_search(product,"=",-1); + char *vendor = yon_config_get_parameter(rtn,size,"vendor"); + yon_char_divide_search(vendor,"=",-1); + char *driver_use = yon_config_get_parameter(rtn,size,"Kernel_driver_in_use"); + yon_char_divide_search(driver_use,"=",-1); + char *driver_all = yon_config_get_parameter(rtn,size,"Kernel_modules"); + yon_char_divide_search(driver_all,"=",-1); + char *final_text = yon_char_unite("",DESCRIPTION_LABEL,": ",_(desc), + "\n",VENDOR_LABEL,": ",vendor, + "\n",MODEL_LABEL,": ",product, + "\n",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){ + 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){ + 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){ + 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)); + } + else { + gtk_widget_destroy(widgets->InformationCompanyLogoImage); + } +} /** void yon_setup_widgets(widgets_dict *widgets) * [EN] * Sets up every element on main window @@ -1230,8 +1345,52 @@ void yon_setup_widgets(widgets_dict *widgets) widgets->templateMonitorConfigurationDoNotSwitchOffLabel = yon_gtk_builder_get_widget(widgets->builder, "templateMonitorConfigurationDoNotSwitchOffLabel"); widgets->templateMonitorConfigurationDoNotSwitchOffCheck = yon_gtk_builder_get_widget(widgets->builder, "templateMonitorConfigurationDoNotSwitchOffCheck"); + widgets->proprietaryTreeView = yon_gtk_builder_get_widget(widgets->builder, "proprietaryTreeView"); + widgets->proprietaryInfoButton = yon_gtk_builder_get_widget(widgets->builder, "proprietaryInfoButton"); + widgets->proprietaryDeleteButton = yon_gtk_builder_get_widget(widgets->builder, "proprietaryDeleteButton"); + widgets->proprietaryInstallButton = yon_gtk_builder_get_widget(widgets->builder, "proprietaryInstallButton"); + widgets->proprietaryTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "proprietaryTreeSelection")); + widgets->driversTreeView = yon_gtk_builder_get_widget(widgets->builder, "driversTreeView"); + widgets->driversInfoButton = yon_gtk_builder_get_widget(widgets->builder, "driversInfoButton"); + 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->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "driversTreeSelection")); + + widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "proprietartInstalledColumn")); + widgets->ProprietaryPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryPackageColumn")); + widgets->ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryDriverColumn")); + widgets->ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryDescriptionColumn")); + widgets->ProprietarySupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietarySupportedColumn")); + + widgets->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "DriverModulesTab")); + widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "DriversTab")); + widgets->MainTabLabel = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "MainTabLabel")); + widgets->DriversTabLabel = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "DriversTabLabel")); + widgets->InformationTabLabel = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationTabLabel")); + widgets->InformationFrameLabel = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationFrameLabel")); + widgets->InformationOverlay = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationOverlay")); + widgets->InformationCompanyLogoImage = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationCompanyLogoImage")); + + widgets->driverInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverInstalledColumn")); + widgets->driverPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverPackageColumn")); + widgets->driverDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDriverColumn")); + 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")); + + 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->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); + g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets); + g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets); + + g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets); + g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets); + g_signal_connect(G_OBJECT(widgets->driversInfoButton), "clicked", G_CALLBACK(on_driver_info), widgets); + g_signal_connect(G_OBJECT(widgets->mainDriverAutomaticallyChooseCheck), "toggled", G_CALLBACK(on_auto_choose_drivers), widgets); // g_signal_connect(G_OBJECT(widgets->mainHybridGraphicsDiscreteCheck), "toggled", G_CALLBACK(on_sensitive_change), widgets); g_signal_connect(G_OBJECT(widgets->mainExtraLaunchOptirunCheck), "toggled", G_CALLBACK(on_sensitive_change), widgets->mainExtraLaunchOptirunEntry); @@ -1239,6 +1398,7 @@ void yon_setup_widgets(widgets_dict *widgets) g_signal_connect(G_OBJECT(widgets->mainExtraLaunchOptirunCheck), "toggled", G_CALLBACK(on_sensitive_change), widgets->extraOptirunChooseAppsButton); g_signal_connect(G_OBJECT(widgets->mainExtraLaunchPrismusunCheck), "toggled", G_CALLBACK(on_sensitive_change), widgets->extraPrimusunChooseAppsButton); + g_signal_connect(G_OBJECT(widgets->MainWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL); // g_signal_connect(G_OBJECT(widgets->extraOptirunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), widgets); // g_signal_connect(G_OBJECT(widgets->extraPrimusunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), widgets); @@ -1253,54 +1413,59 @@ void yon_setup_widgets(widgets_dict *widgets) g_signal_connect(G_OBJECT(widgets->mainHeaderSaveGlobalMenuItem), "activate", G_CALLBACK(on_configuration_save_global), widgets); g_signal_connect(G_OBJECT(widgets->mainHeaderSaveLocalMenuItem), "activate", G_CALLBACK(on_configuration_save_local), widgets); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), _("Off")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), _("fbdev")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), _("Off")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), _("fbdev")); - - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), _("1st variant. May cause perfomance drops in video games")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), _("2nd variant. May not work on specific video cards")); - gtk_label_set_text(GTK_LABEL(widgets->headInfoLabel), _("Video output configuration")); - gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeNvidiaLabel), _("Failsafe driver nVidia: ")); - gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeAMDLabel), _("Failsafe driver AMD/ATI: ")); - gtk_label_set_text(GTK_LABEL(widgets->mainDriverFrameLabel), _("Driver")); - // gtk_label_set_text(GTK_LABEL(widgets->monitorConfigurationMethodLabel),_("Configuration method")); - gtk_label_set_text(GTK_LABEL(widgets->mainMonitorConfigurationFrameLabel), _("Monitor configuration")); - gtk_label_set_text(GTK_LABEL(widgets->mainHybridGraphicsFrameLabel), _("Hybrid graphics")); - gtk_label_set_text(GTK_LABEL(widgets->mainExtraFixGapLabel), _("Fix frame gap (nVidia)")); - gtk_label_set_text(GTK_LABEL(widgets->mainExtraFrameLabel), _("Extra")); - gtk_label_set_text(GTK_LABEL(widgets->mainHeaderTitleLabel), _("UBlinux Video Configuration")); - gtk_label_set_text(GTK_LABEL(widgets->mainHeaderConfigLoadLabel), _("Load")); - gtk_label_set_text(GTK_LABEL(widgets->mainHeaderSaveConfigurationLabel), _("Save")); - - gtk_button_set_label(GTK_BUTTON(widgets->mainHybridGraphicsDiscreteCheck), _("On")); - gtk_button_set_label(GTK_BUTTON(widgets->mainDriverAutomaticallyChooseCheck), _("Automatically choose and use driver")); - gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchOptirunCheck), _("Launch programms through optirun (nVidia): ")); - gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchPrismusunCheck), _("Launch programs through primusun (nVidia): ")); - gtk_button_set_label(GTK_BUTTON(widgets->mainHybridGraphicsDiscreteCheck), _("discrete video only (AMD/ATI)")); - - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderLoadGlobalMenuItem), _("Load from global configuration")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderLoadLocalMenuItem), _("Load from local configuration")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveGlobalLocalMenuItem), _("Save to global an local configuration")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveGlobalMenuItem), _("Save to global configuration")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveLocalMenuItem), _("Save to local configuration")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSettingsDocumentationMenuItem), _("Documentation")); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSettingsAboutMenuItem), _("About")); - // gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchThroughButton),_("Change")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), OFF_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), FBDEV_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), OFF_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), FBDEV_LABEL); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_1_LABEL); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_2_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->headInfoLabel), HEADER_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeNvidiaLabel), FAILSAFE_NVIDIA_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeAMDLabel), FAILSAFE_ATI_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainDriverFrameLabel), DRIVER_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainMonitorConfigurationFrameLabel), MONITOR_CONFIGURATION_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainHybridGraphicsFrameLabel), HYBRID_GRAPHICS_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainExtraFixGapLabel), FIX_GAP_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainExtraFrameLabel), EXTRA_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainHeaderTitleLabel), TITLE_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainHeaderConfigLoadLabel), LOAD_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->mainHeaderSaveConfigurationLabel), SAVE_LABEL); + + gtk_button_set_label(GTK_BUTTON(widgets->mainHybridGraphicsDiscreteCheck), ON_LABEL); + gtk_button_set_label(GTK_BUTTON(widgets->mainDriverAutomaticallyChooseCheck), AUTO_CHOOSE_DRIVERS_LABEL); + gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchOptirunCheck), LAUNCH_OPTIRUN_LABEL); + gtk_button_set_label(GTK_BUTTON(widgets->mainExtraLaunchPrismusunCheck), LAUNCH_PRIMUSRUN_LABEL); + gtk_button_set_label(GTK_BUTTON(widgets->mainHybridGraphicsDiscreteCheck), DISCRETE_ONLY_LABEL); + + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderLoadGlobalMenuItem), LOAD_GLOBAL_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderLoadLocalMenuItem), LOAD_LOCAL_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveGlobalLocalMenuItem), SAVE_GLOBAL_LOCAL_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveGlobalMenuItem), SAVE_GLOBAL_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSaveLocalMenuItem), SAVE_LOCAL_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSettingsDocumentationMenuItem), DOCUMENTATION_LABEL); + gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->mainHeaderSettingsAboutMenuItem), ABOUT_LABEL); + + + gtk_label_set_text(GTK_LABEL(widgets->DriverModulesTab), DRIVER_MODULES_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->DriversTab), DRIVERS_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->MainTabLabel), MAIN_SETTINGS_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->DriversTabLabel), DRIVERS_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->InformationTabLabel), INFORMATION_LABEL); + gtk_label_set_text(GTK_LABEL(widgets->InformationFrameLabel), DEVICES_DRIVERS_LABEL); + + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), INSTALLED_LABEL); + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), PACKAGE_LABEL); + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), SUPPORTED_LABEL); + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDriverColumn), DRIVER_LABEL); + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->ProprietaryDescriptionColumn), DESCRIPTION_LABEL); + yon_ubl_header_setup(widgets->mainHeadOverlay, widgets->headBox, widgets->mainHeadBackgroundImage, banner_path); - // gtk_overlay_add_overlay(GTK_OVERLAY(widgets->mainHeadOverlay),widgets->headBox); yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox); - yon_monitor_view_update(); videoconfig.status_render.icon=widgets->mainStatusIcon; videoconfig.status_render.label=widgets->mainStatusLabel; videoconfig.status_render.box=widgets->mainStatusBox; - // gtk_image_set_from_file(GTK_IMAGE(widgets->mainHeadBackgroundImage),banner_path); - // MonitorSettings *monitors = yon_setup_monitor_settings(); - // videoconfig.monitors=yon_dictionary_pack_monitors(monitors,yon_check_for_monitors()); - // widgets->overlays = yon_dictionary_pack_overlays(monitors); - // yon_dictionary_gtk_pack_start_multiple_widgets(widgets->overlays, widgets->mainMonitorVisualConfigurationBox, 0, 0, 0); - // yon_dictionary_gtk_pack_start_multiple_widgets(widgets->monitors,widgets->mainMonitorConfigurationBox,0,0,0); } int main(int argc, char *argv[]) @@ -1315,16 +1480,21 @@ int main(int argc, char *argv[]) widgets_dict widgets; yon_setup_widgets(&widgets); 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); - yon_ubl_status_box_render(widgets.mainStatusBox, widgets.mainStatusIcon, widgets.mainStatusLabel, _("Configuration has been loaded"), BACKGROUND_IMAGE_SUCCESS_TYPE); + videoconfig.status_render.text_to_render=LOCAL_LOAD_SUCCESS; + videoconfig.status_render.type=BACKGROUND_IMAGE_SUCCESS_TYPE; + yon_ubl_status_box_render(&videoconfig.status_render); on_config_fill_interface(&widgets); yon_monitor_set_resolutions(); + yon_adapter_window_setup(&widgets); GtkCssProvider *css = gtk_css_provider_new(); gtk_css_provider_load_from_path(css, CssPath, NULL); gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css), -1); + yon_monitor_view_update(); gtk_main(); return 0; } \ No newline at end of file diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index f286018..5bd5184 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -1,7 +1,9 @@ #include #include +#include #include #include +#include #include #include #include @@ -31,7 +33,7 @@ #define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\"" #define get_resolution_ports_command "xrandr |grep -nwP \"connected\" |grep -oE \"[0-9a-zA-Z:]{1,10} connected\" |grep -oE \"[0-9a-zA-Z:]{1,10} \"" -#define get_proprietary_drivers_command "cut -d, -f1- /usr/share/ubl-settings-video/csv/video-drivers.csv | grep -E \"-\"" +#define get_proprietary_drivers_info_command "cut -d: -f2- /usr/share/ubl-settings-video/csv/video-drivers.csv | grep -E \"-\"" #define get_resolutions_supportable_command "cut -d, -f1- /usr/share/ubl-settings-video/csv/resolutions.csv |sed 's/,/ /g'" @@ -39,19 +41,19 @@ #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 VGADRV_AUTO " #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 VGADRV_AUTO " #define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video " #define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video " -#define remove_drivers_local_command "/usr/bin/ubconfig --target global remove video " +#define remove_drivers_local_command "/usr/bin/ubconfig --target system remove video " -#define install_proprietary_command "pkexec pacman -Sy --noconfirm " +#define install_proprietary_command "pkexec pacman --quiet --needed --noconfirm -Sy " #define delete_proprietary_command "pkexec pacman -R --noconfirm " @@ -59,9 +61,20 @@ #define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2" +#define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}-nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" + +#define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" + +#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ]{1,}\"|sed 's/: /=/g'|sed 's/ /_/g'" + #define XORG_MONITOR(port) yon_char_get_augumented(" XORG_MONITOR[",yon_char_get_augumented(port,"] ")) +typedef struct{ + char* command; + void *data; +} thread_input; + char *local; typedef char *string; @@ -92,6 +105,7 @@ typedef struct proprietary_config proprietary; dictionary *supported_resolutions; GtkListStore *list; + GtkListStore *modulelist; char *failsafenVidia; char *failsafeATI; int descreteOnly; @@ -225,6 +239,23 @@ typedef struct GtkTreeViewColumn *driverDriverColumn; GtkTreeViewColumn *driverDescriptionColumn; GtkTreeViewColumn *driverSupportedColumn; + + GtkWidget *DriverModulesTab; + GtkWidget *DriversTab; + GtkWidget *MainTabLabel; + GtkWidget *DriversTabLabel; + GtkWidget *InformationTabLabel; + GtkWidget *InformationFrameLabel; + GtkWidget *InformationOverlay; + GtkWidget *InformationCompanyLogoImage; + + GtkWidget *TerminalOverlay; + GtkWidget *TerminalBox; + GtkWidget *TerminalRevealer; + GtkWidget *TerminalInfoLabel; + GtkWidget *TerminalMoreButton; + GtkWidget *TerminalScroll; + GtkWidget *TerminalMoreRevieler; } widgets_dict; typedef struct @@ -294,7 +325,7 @@ 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); +char *yon_char_parsed_get_resolution(config_str parsed_string, int size); void yon_monitor_set_resolutions(); monitor_config yon_monitor_config_new(char *port); void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_string); @@ -308,4 +339,7 @@ void on_monitor_delete(GtkWidget *self,monitor_view windowd); void yon_monitor_view_update(); void yon_monitor_window_update(monitor_edit_window *window); char *yon_monitor_make_string(monitorconfig* config); +void yon_launch_with_output(char *command); +dictionary *yon_proprieary_get(); +void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list); #endif \ No newline at end of file diff --git a/source/ubl-utils.c b/source/ubl-utils.c index fd78093..5784a10 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -266,7 +266,8 @@ dictionary *yon_dictionary_find(dictionary **dict, char *key) dictionary *yon_dictionary_rip(dictionary *dict) { - if (!dict->next) + if (!dict->next&&!dict->prev) return NULL; + else if (!dict->next) { dictionary *prev = dict->prev; if (prev) @@ -401,6 +402,20 @@ char *yon_char_divide(char *source, int dividepos) return cut; } +int yon_char_find_count(char *source, char *find){ + char *working_string=yon_char_new(source); + int i=0; + int size=0; + int pos=0; + config_str rtn = yon_char_parse(working_string,&size,"\n"); + for (int j=0;jmessage); g_error_free(err); } - gtk_label_set_text(GTK_LABEL(StatusLabel), StatusText); - if (BackgroundClass == BACKGROUND_IMAGE_SUCCESS_TYPE) + if (data.type == BACKGROUND_IMAGE_SUCCESS_TYPE||! data.type) { - gtk_style_context_remove_class(gtk_widget_get_style_context(StatusBox), "boxInfoMessError"); - gtk_style_context_add_class(gtk_widget_get_style_context(StatusBox), "boxInfoMessOK"); - gtk_image_set_from_pixbuf(GTK_IMAGE(StatusIcon), gtk_icon_theme_load_icon_for_scale(ictheme, "com.ublinux.ubl-settings-video.checked", 25, 1, GTK_ICON_LOOKUP_FORCE_SIZE, &err)); + gtk_style_context_remove_class(gtk_widget_get_style_context(data.box), "boxInfoMessError"); + gtk_style_context_add_class(gtk_widget_get_style_context(data.box), "boxInfoMessOK"); + gtk_image_set_from_pixbuf(GTK_IMAGE(data.icon), gtk_icon_theme_load_icon_for_scale(ictheme, "com.ublinux.ubl-settings-video.checked", 25, 1, GTK_ICON_LOOKUP_FORCE_SIZE, &err)); } - else if (BackgroundClass == BACKGROUND_IMAGE_FAIL_TYPE) + else if (data.type == BACKGROUND_IMAGE_FAIL_TYPE) { - gtk_style_context_remove_class(gtk_widget_get_style_context(StatusBox), "boxInfoMessOK"); - gtk_style_context_add_class(gtk_widget_get_style_context(StatusBox), "boxInfoMessError"); - gtk_image_set_from_pixbuf(GTK_IMAGE(StatusIcon), gtk_icon_theme_load_icon_for_scale(ictheme, "com.ublinux.ubl-settings-video.warning", 25, 1, GTK_ICON_LOOKUP_FORCE_SIZE, &err)); + gtk_style_context_remove_class(gtk_widget_get_style_context(data.box), "boxInfoMessOK"); + gtk_style_context_add_class(gtk_widget_get_style_context(data.box), "boxInfoMessError"); + gtk_image_set_from_pixbuf(GTK_IMAGE(data.icon), gtk_icon_theme_load_icon_for_scale(ictheme, "com.ublinux.ubl-settings-video.warning", 25, 1, GTK_ICON_LOOKUP_FORCE_SIZE, &err)); } + if (data.text_to_render) + gtk_label_set_text(GTK_LABEL(data.label), data.text_to_render); + else + for (int i=0;i + + + True + False + end + start + 64 + True False @@ -100,6 +108,59 @@ + + 800 + 400 + False + 800 + 400 + com.ublinux.ubl-settings-video + + + True + False + vertical + + + + + + + + True + False + True + + + True + False + start + 5 + 5 + 5 + 5 + False + UBlinux Video Configuration + + + + + + + + True + False + 5 + 5 + 5 + 5 + 32 + com.ublinux.ubl-settings-video + + + + + False О Программе @@ -113,7 +174,7 @@ 1.2 Copyright © 2023 - UBSoft Software LLC Settings for video output - https://ublinux.ru/ + https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-video Project Home Page Это приложение распространяется без каких-либо гарантий. Подробнее в <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, версии 2 или позднее</a>. @@ -146,6 +207,166 @@ + + 300 + 0.7299999937415127 + 1 + 10 + + + True + True + False + end + True + + + True + False + 0 + in + + + True + False + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + + + True + True + False + center + + + True + True + 0 + + + + + More + True + True + True + True + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + + + True + False + + + True + False + vertical + + + True + False + True + natural + adjustment1 + natural + UTF-8 + True + False + + + True + True + 0 + + + + + True + True + 0 + + + + + True + False + vertical + adjustment1 + True + False + 1 + 2 + + + False + True + 1 + + + + + + + False + True + 1 + + + + + + + + + True + False + + + + + + + True False @@ -296,7 +517,7 @@ True False - True + True @@ -316,6 +537,7 @@ False 5 5 + True @@ -989,20 +1211,38 @@ - + True - False - start - 5 - 5 - 5 - 5 - 6 - 6 - - - - + True + + + True + False + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + + + + + + + + + + True @@ -1055,7 +1295,6 @@ True True - 5 165 @@ -1065,6 +1304,7 @@ 5 5 5 + 5 external @@ -1292,7 +1532,7 @@ False 5 5 - 12 + 5 5 @@ -1305,7 +1545,6 @@ True False 5 - 5 True @@ -1346,7 +1585,7 @@ False 5 5 - 12 + 5 5 @@ -1446,7 +1685,6 @@ 5 - True False True True @@ -1460,7 +1698,6 @@ - True False True True @@ -1548,7 +1785,7 @@ - + True False Main Settings @@ -1558,353 +1795,382 @@ - + True - True - 5 - 5 - 5 - 5 - 5 - 5 + False - + True - False + True 5 5 5 5 + 5 5 - vertical - 5 - + True - True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 - + True True - 5 - liststore6 - 1 - True - - - + external - - Installed + + True + True + 5 + liststore6 + 1 + vertical + True + + + - - - 0 - + + Installed + + + + 0 + + + - - - - - Package - - - 1 - + + Package + + + + 1 + + + - - - - - Driver - - - 2 - + + Driver + + + + 2 + + + - - - - - Description - - - 3 - + + autosize + Description + + + word + 150 + + + 3 + + + - - - - - Supported Devices - - - 4 - + + autosize + Supported Devices + + + word + 220 + + + 4 + + + - - - - True - True - 0 - - - - - True - False - center - 5 - - - Установить - True - True - True - image9 - - False + True True - end 0 - - Удалить + True - True - True - image11 + False + center + 5 + + + Установить + True + True + True + image9 + + + False + True + end + 0 + + + + + Удалить + True + True + True + image11 + + + False + True + end + 1 + + + + + Подробнее + True + True + True + image10 + + + False + True + end + 2 + + False True - end 1 - - - Подробнее - True - True - True - image10 - - - False - True - end - 2 - - + + + + + True + False + Driver Modules - False - True - 1 + False - - - - - True - False - Driver Modules - - - False - - - - - True - False - 5 - 5 - 5 - 5 - 5 - vertical - 5 - + True - True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 - + True True - 5 - liststore6 - 0 - True - 2 - - - + external - - Installed + + True + True + 5 + liststore6 + 0 + vertical + True + 2 + + + - - - 0 - + + Installed + + + + 0 + + + - - - - - Package - - - 1 - + + Package + + + + 1 + + + - - - - - Driver - - - 2 - + + Driver + + + + 2 + + + - - - - - Description - - - 3 - + + autosize + Description + + + word + 150 + + + 3 + + + - - - - - Supported Devices - - - 4 - + + autosize + Supported Devices + + + word + 220 + + + 4 + + + - - - - True - True - 0 - - - - - True - False - center - 5 - - - Установить - True - True - True - image6 - - False + True True - end 0 - - Удалить + True - True - True - image7 + False + center + 5 + + + Установить + True + True + True + image6 + + + False + True + end + 0 + + + + + Удалить + True + True + True + image7 + + + False + True + end + 1 + + + + + Подробнее + True + True + True + image12 + + + False + True + end + 2 + + False True - end 1 - - - Подробнее - True - True - True - image12 - - - False - True - end - 2 - - - False - True 1 + + + True + False + Drivers + + + 1 + False + + + + + + + + - 1 - - - - - True - False - Drivers - - - 1 - False + -1 - - - - - - 1 - + True False Drivers @@ -1935,13 +2201,30 @@ True False + 15 + 15 + 20 - + + 177 + 159 True False + start start - 75 - appointment-new-symbolic + + + True + False + start + end + 128 + com.ublinux.ubl-settings-video.video-card + + + -1 + + False @@ -1950,18 +2233,14 @@ - + True False - start start - 10 - 5 - 10 - 5 - 10 - 10 - label + <span size='15pt'><span color='#1a5fb4'>sdrtjhsrtjh:</span> dfuykdftytdykkdfty</span> + True + 0 + 0 False @@ -1974,7 +2253,7 @@ - + True False 5 @@ -1988,7 +2267,7 @@ - + True False Information @@ -2212,6 +2491,9 @@ + + both + True False diff --git a/ubl-settings-video.pot b/ubl-settings-video.pot index 3bc82af..292b5f6 100644 --- a/ubl-settings-video.pot +++ b/ubl-settings-video.pot @@ -11,194 +11,348 @@ msgstr "" "POT-Creation-Date: 2023-04-21 12:33+0000\n" "PO-Revision-Date: 2023-01-01 00:00+0600\n" "Last-Translator: UBLinux Team \n" -"Language-Team: Russian - UBLinux Team \n" -"Language: Russian\n" +"Language-Team: UBLinux Team \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-settings-video.c:26 source/ubl-settings-video.c:223 -msgid "Cancel" +#: source/ubl-settings-video.c:323 source/ubl-settings-video.c:366 +#: source/ubl-settings-video.c:923 source/ubl-settings-video.c:934 +msgid "Don't use" msgstr "" -#: source/ubl-settings-video.c:27 -msgid "Accept" +#: source/ubl-settings-video.c:615 source/ubl-settings-video-strings.h:38 +msgid "UBlinux Video Configuration" msgstr "" -#: source/ubl-settings-video.c:28 source/ubl-settings-video.c:386 -msgid "Driver" +#: source/ubl-settings-video.c:617 +msgid "Progect Home Page" msgstr "" -#: source/ubl-settings-video.c:29 -msgid "Description" +#: source/ubl-settings-video.c:618 +msgid "Videocard and monitor configuration manager" msgstr "" -#: source/ubl-settings-video.c:87 source/ubl-settings-video.c:392 -msgid "UBlinux Video Configuration" +#: source/ubl-settings-video.c:924 source/ubl-settings-video.c:935 +#: source/ubl-settings-video-strings.h:43 +msgid "fbdev" msgstr "" -#: source/ubl-settings-video.c:89 -msgid "Progect Home Page" +#: source/ubl-settings-video-strings.h:1 +msgid "Default settings" msgstr "" -#: source/ubl-settings-video.c:90 -msgid "Videocard and monitor configuration manager" +#: source/ubl-settings-video-strings.h:2 +msgid "Monitor " +msgstr "" + +#: source/ubl-settings-video-strings.h:3 +msgid "Video adapter and display settings" msgstr "" -#: source/ubl-settings-video.c:215 -msgid "Monitor: " +#: source/ubl-settings-video-strings.h:4 +msgid "Port: " msgstr "" -#: source/ubl-settings-video.c:216 +#: source/ubl-settings-video-strings.h:5 msgid "Resolution (px): " msgstr "" -#: source/ubl-settings-video.c:217 +#: source/ubl-settings-video-strings.h:6 msgid "Frequency (Hz): " msgstr "" -#: source/ubl-settings-video.c:218 +#: source/ubl-settings-video-strings.h:7 msgid "Rotation: " msgstr "" -#: source/ubl-settings-video.c:220 -msgid "Main monitor" +#: source/ubl-settings-video-strings.h:8 +msgid "Position: " msgstr "" -#: source/ubl-settings-video.c:221 -msgid "through parameter line:" +#: source/ubl-settings-video-strings.h:9 +msgid "Do not switch off display" msgstr "" -#: source/ubl-settings-video.c:226 source/ubl-settings-video.c:231 -#: 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" +#: source/ubl-settings-video-strings.h:10 +msgid "Create modeline for current resolution with CVT" msgstr "" -#: source/ubl-settings-video.c:374 -msgid "Don't use" +#: source/ubl-settings-video-strings.h:11 +msgid "Use \"CVT Reduced Blanking\"" msgstr "" -#: source/ubl-settings-video.c:375 source/ubl-settings-video.c:377 -msgid "Off" +#: source/ubl-settings-video-strings.h:12 +msgid "Create modeline for current resolution with GTF" msgstr "" -#: source/ubl-settings-video.c:376 source/ubl-settings-video.c:378 -msgid "fbdev" +#: source/ubl-settings-video-strings.h:13 +msgid "Configure manually through parameter line: " +msgstr "" + +#: source/ubl-settings-video-strings.h:14 +msgid "Main display" msgstr "" -#: source/ubl-settings-video.c:380 +#: source/ubl-settings-video-strings.h:15 +msgid "Show unsupported" +msgstr "" + +#: source/ubl-settings-video-strings.h:16 +msgid "Enabled" +msgstr "" + +#: source/ubl-settings-video-strings.h:17 +msgid "Left" +msgstr "" + +#: source/ubl-settings-video-strings.h:18 +msgid "Right" +msgstr "" + +#: source/ubl-settings-video-strings.h:19 +msgid "Inverted" +msgstr "" + +#: source/ubl-settings-video-strings.h:20 +msgid "Left of" +msgstr "" + +#: source/ubl-settings-video-strings.h:21 +msgid "Right of" +msgstr "" + +#: source/ubl-settings-video-strings.h:22 +msgid "Above" +msgstr "" + +#: source/ubl-settings-video-strings.h:23 +msgid "Below " +msgstr "" + +#: source/ubl-settings-video-strings.h:24 +msgid "No rotation" +msgstr "" + +#: source/ubl-settings-video-strings.h:25 +#: source/ubl-settings-video-strings.h:40 +msgid "Save" +msgstr "" + +#: source/ubl-settings-video-strings.h:26 +#: source/ubl-settings-video-strings.h:58 +msgid "Cancel" +msgstr "" + +#: source/ubl-settings-video-strings.h:27 +msgid "Choose port to configure" +msgstr "" + +#: source/ubl-settings-video-strings.h:28 msgid "1st variant. May cause perfomance drops in video games" msgstr "" -#: source/ubl-settings-video.c:381 +#: source/ubl-settings-video-strings.h:29 msgid "2nd variant. May not work on specific video cards" msgstr "" -#: source/ubl-settings-video.c:382 +#: source/ubl-settings-video-strings.h:30 msgid "Video output configuration" msgstr "" -#: source/ubl-settings-video.c:383 -msgid "Proprietary driver: " -msgstr "" - -#: source/ubl-settings-video.c:384 +#: source/ubl-settings-video-strings.h:31 msgid "Failsafe driver nVidia: " msgstr "" -#: source/ubl-settings-video.c:385 +#: source/ubl-settings-video-strings.h:32 msgid "Failsafe driver AMD/ATI: " msgstr "" -#: source/ubl-settings-video.c:388 +#: source/ubl-settings-video-strings.h:33 +msgid "Driver" +msgstr "" + +#: source/ubl-settings-video-strings.h:34 msgid "Monitor configuration" msgstr "" -#: source/ubl-settings-video.c:389 +#: source/ubl-settings-video-strings.h:35 msgid "Hybrid graphics" msgstr "" -#: source/ubl-settings-video.c:390 +#: source/ubl-settings-video-strings.h:36 msgid "Fix frame gap (nVidia)" msgstr "" -#: source/ubl-settings-video.c:391 +#: source/ubl-settings-video-strings.h:37 msgid "Extra" msgstr "" -#: source/ubl-settings-video.c:393 +#: source/ubl-settings-video-strings.h:39 msgid "Load" msgstr "" -#: source/ubl-settings-video.c:394 -msgid "Save" +#: source/ubl-settings-video-strings.h:41 +msgid "On" msgstr "" -#: source/ubl-settings-video.c:396 -msgid "On" +#: source/ubl-settings-video-strings.h:42 +msgid "Off" msgstr "" -#: source/ubl-settings-video.c:397 +#: source/ubl-settings-video-strings.h:44 msgid "Automatically choose and use driver" msgstr "" -#: source/ubl-settings-video.c:398 +#: source/ubl-settings-video-strings.h:45 msgid "Launch programms through optirun (nVidia): " msgstr "" -#: source/ubl-settings-video.c:399 -msgid "Launch programs through primusun (nVidia): " +#: source/ubl-settings-video-strings.h:46 +msgid "Launch programs through primusrun (nVidia): " msgstr "" -#: source/ubl-settings-video.c:400 +#: source/ubl-settings-video-strings.h:47 msgid "discrete video only (AMD/ATI)" msgstr "" -#: source/ubl-settings-video.c:402 +#: source/ubl-settings-video-strings.h:48 msgid "Load from global configuration" msgstr "" -#: source/ubl-settings-video.c:403 +#: source/ubl-settings-video-strings.h:49 msgid "Load from local configuration" msgstr "" -#: source/ubl-settings-video.c:404 +#: source/ubl-settings-video-strings.h:50 msgid "Save to global an local configuration" msgstr "" -#: source/ubl-settings-video.c:405 +#: source/ubl-settings-video-strings.h:51 msgid "Save to global configuration" msgstr "" -#: source/ubl-settings-video.c:406 +#: source/ubl-settings-video-strings.h:52 msgid "Save to local configuration" msgstr "" -#: source/ubl-settings-video.c:407 +#: source/ubl-settings-video-strings.h:53 msgid "Documentation" msgstr "" -#: source/ubl-settings-video.c:408 +#: source/ubl-settings-video-strings.h:54 msgid "About" msgstr "" -#: source/ubl-settings-video.c:438 -msgid "Configuration has been loaded" +#: source/ubl-settings-video-strings.h:55 +msgid "Installed" +msgstr "" + +#: source/ubl-settings-video-strings.h:56 +msgid "Package" +msgstr "" + +#: source/ubl-settings-video-strings.h:57 +msgid "Supported Devices" +msgstr "" + +#: source/ubl-settings-video-strings.h:59 +msgid "Accept" +msgstr "" + +#: source/ubl-settings-video-strings.h:61 +msgid "Information" +msgstr "" + +#: source/ubl-settings-video-strings.h:62 +msgid "Drivers" +msgstr "" + +#: source/ubl-settings-video-strings.h:63 +msgid "Main settings" +msgstr "" + +#: source/ubl-settings-video-strings.h:64 +msgid "Devices and drivers" +msgstr "" + +#: source/ubl-settings-video-strings.h:65 +msgid "Driver modules" +msgstr "" + +#: source/ubl-settings-video-strings.h:80 +msgid "Error: Port must be chosen to save" +msgstr "" + +#: source/ubl-settings-video-strings.h:81 +msgid "Monitor configuration succeedeed" +msgstr "" + +#: source/ubl-settings-video-strings.h:83 +msgid "Global configuration loading succseeded." +msgstr "" + +#: source/ubl-settings-video-strings.h:84 +msgid "Local configuration loading succseeded." msgstr "" -#: source/ubl-settings-video.h:22 +#: source/ubl-settings-video-strings.h:86 +msgid "Local and global configuration saving succseeded." +msgstr "" + +#: source/ubl-settings-video-strings.h:87 +msgid "Global configuration saving succseeded." +msgstr "" + +#: source/ubl-settings-video-strings.h:88 +msgid "Local configuration saving succseeded." +msgstr "" + +#: source/ubl-settings-video-strings.h:90 +msgid "Yes" +msgstr "" + +#: source/ubl-settings-video-strings.h:91 +msgid "No" +msgstr "" + +#: source/ubl-settings-video-strings.h:93 +msgid "Description" +msgstr "" + +#: source/ubl-settings-video-strings.h:94 +msgid "Vendor" +msgstr "" + +#: source/ubl-settings-video-strings.h:95 +msgid "Model" +msgstr "" + +#: source/ubl-settings-video-strings.h:96 +msgid "Kernel driver in use" +msgstr "" + +#: source/ubl-settings-video-strings.h:97 +msgid "Kernel modules" +msgstr "" + +#: source/ubl-settings-video.h:25 msgid "Failed to load global configuration" msgstr "" -#: source/ubl-settings-video.h:23 +#: source/ubl-settings-video.h:26 msgid "Failed to load local configuration" msgstr "" -#: source/ubl-settings-video.h:25 +#: source/ubl-settings-video.h:28 msgid "Saving to global configuration Succeeded" msgstr "" -#: source/ubl-settings-video.h:26 +#: source/ubl-settings-video.h:29 msgid "Saving to local configuration Succeeded" msgstr "" + + +msgid "VGA compitable controller" +msgstr "" \ No newline at end of file diff --git a/ubl-settings-video_ru.po b/ubl-settings-video_ru.po index c4ea148..685a775 100644 --- a/ubl-settings-video_ru.po +++ b/ubl-settings-video_ru.po @@ -17,208 +17,357 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-settings-video.c:26 source/ubl-settings-video.c:223 -msgid "Cancel" -msgstr "Отмена" - -#: source/ubl-settings-video.c:27 -msgid "Accept" -msgstr "Принять" - -#: source/ubl-settings-video.c:28 source/ubl-settings-video.c:386 -msgid "Driver" -msgstr "Драйвер" - -#: source/ubl-settings-video.c:29 -msgid "Description" -msgstr "Описание" +#: source/ubl-settings-video.c:323 source/ubl-settings-video.c:366 +#: source/ubl-settings-video.c:923 source/ubl-settings-video.c:934 +msgid "Don't use" +msgstr "Не использовать" -#: source/ubl-settings-video.c:87 source/ubl-settings-video.c:392 +#: source/ubl-settings-video.c:615 source/ubl-settings-video-strings.h:38 msgid "UBlinux Video Configuration" msgstr "Видеокарта/Экран" -#: source/ubl-settings-video.c:89 +#: source/ubl-settings-video.c:617 msgid "Progect Home Page" msgstr "Домашняя страница проекта" -#: source/ubl-settings-video.c:90 -#, fuzzy +#: source/ubl-settings-video.c:618 msgid "Videocard and monitor configuration manager" msgstr "Настройка вывода изображения" -#: source/ubl-settings-video.c:215 -msgid "Monitor: " +#: source/ubl-settings-video.c:924 source/ubl-settings-video.c:935 +#: source/ubl-settings-video-strings.h:43 +msgid "fbdev" +msgstr "fbdev" + +#: source/ubl-settings-video-strings.h:1 +msgid "Default settings" +msgstr "По умолчанию" + +#: source/ubl-settings-video-strings.h:2 +msgid "Monitor " msgstr "Монитор: " -#: source/ubl-settings-video.c:216 +#: source/ubl-settings-video-strings.h:3 +msgid "Video adapter and display settings" +msgstr "Настройка вывода изображения и установка драйвера видеокарты" + +#: source/ubl-settings-video-strings.h:4 +msgid "Port: " +msgstr "Порт: " + +#: source/ubl-settings-video-strings.h:5 msgid "Resolution (px): " msgstr "Разрешение (px): " -#: source/ubl-settings-video.c:217 +#: source/ubl-settings-video-strings.h:6 msgid "Frequency (Hz): " msgstr "Обновления (Hz): " -#: source/ubl-settings-video.c:218 +#: source/ubl-settings-video-strings.h:7 msgid "Rotation: " msgstr "Вращение: " -#: source/ubl-settings-video.c:220 -#, fuzzy -msgid "Main monitor" -msgstr "Основной" +#: source/ubl-settings-video-strings.h:8 +msgid "Position: " +msgstr "Положение: " -#: source/ubl-settings-video.c:221 -msgid "through parameter line:" -msgstr "Через строку параметра: " +#: source/ubl-settings-video-strings.h:9 +msgid "Do not switch off display" +msgstr "Не выключать дисплей" -#: source/ubl-settings-video.c:226 source/ubl-settings-video.c:231 -#: 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 "По умолчанию" +#: source/ubl-settings-video-strings.h:10 +msgid "Create modeline for current resolution with CVT" +msgstr "Создать modeline для укащанного разрешения с помощью CVT" -#: source/ubl-settings-video.c:374 -msgid "Don't use" -msgstr "Не использовать" +#: source/ubl-settings-video-strings.h:11 +msgid "Use \"CVT Reduced Blanking\"" +msgstr "" +"Использовать \"CVT Reduced Blanking\" уменьшения пропускной способности\n" +"для дисплеев с высоким разрешением" -#: source/ubl-settings-video.c:375 source/ubl-settings-video.c:377 -msgid "Off" -msgstr "Выключить" +#: source/ubl-settings-video-strings.h:12 +msgid "Create modeline for current resolution with GTF" +msgstr "Создать modeline для указанного разрешения с помощью GTF" -#: source/ubl-settings-video.c:376 source/ubl-settings-video.c:378 -msgid "fbdev" -msgstr "fbdev" +#: source/ubl-settings-video-strings.h:13 +msgid "Configure manually through parameter line: " +msgstr "Настроить вручную через строку параметра: " + +#: source/ubl-settings-video-strings.h:14 +msgid "Main display" +msgstr "Основной дисплей" + +#: source/ubl-settings-video-strings.h:15 +msgid "Show unsupported" +msgstr "Все видеорежимы" + +#: source/ubl-settings-video-strings.h:16 +msgid "Enabled" +msgstr "Включён" + +#: source/ubl-settings-video-strings.h:17 +msgid "Left" +msgstr "Влево" + +#: source/ubl-settings-video-strings.h:18 +msgid "Right" +msgstr "Вправо" + +#: source/ubl-settings-video-strings.h:19 +msgid "Inverted" +msgstr "Инвертирован" + +#: source/ubl-settings-video-strings.h:20 +msgid "Left of" +msgstr "Слева от" + +#: source/ubl-settings-video-strings.h:21 +msgid "Right of" +msgstr "Справа от" + +#: source/ubl-settings-video-strings.h:22 +msgid "Above" +msgstr "Над" + +#: source/ubl-settings-video-strings.h:23 +msgid "Below " +msgstr "Под " -#: source/ubl-settings-video.c:380 +#: source/ubl-settings-video-strings.h:24 +msgid "No rotation" +msgstr "Не поворачивать" + +#: source/ubl-settings-video-strings.h:25 +#: source/ubl-settings-video-strings.h:40 +msgid "Save" +msgstr "Сохранить" + +#: source/ubl-settings-video-strings.h:26 +#: source/ubl-settings-video-strings.h:58 +msgid "Cancel" +msgstr "Отмена" + +#: source/ubl-settings-video-strings.h:27 +msgid "Choose port to configure" +msgstr "Выбрать порт для настройки" + +#: source/ubl-settings-video-strings.h:28 msgid "1st variant. May cause perfomance drops in video games" msgstr "1 вариант. Может снизить производительность в играх" -#: source/ubl-settings-video.c:381 +#: source/ubl-settings-video-strings.h:29 msgid "2nd variant. May not work on specific video cards" msgstr "2 вариант. Не на каждой карте может сработать" -#: source/ubl-settings-video.c:382 +#: source/ubl-settings-video-strings.h:30 msgid "Video output configuration" msgstr "Настройка вывода изображения" -#: source/ubl-settings-video.c:383 -#, fuzzy -msgid "Proprietary driver: " -msgstr "Проприетарный драйвер: " - -#: source/ubl-settings-video.c:384 -#, fuzzy +#: source/ubl-settings-video-strings.h:31 msgid "Failsafe driver nVidia: " msgstr "Отказоучтойчивый драйвер nVidia: " -#: source/ubl-settings-video.c:385 -#, fuzzy +#: source/ubl-settings-video-strings.h:32 msgid "Failsafe driver AMD/ATI: " msgstr "Отказоустойчивый драйвер AMD/ATI: " -#: source/ubl-settings-video.c:388 +#: source/ubl-settings-video-strings.h:33 +msgid "Driver" +msgstr "Драйвер" + +#: source/ubl-settings-video-strings.h:34 msgid "Monitor configuration" msgstr "Настройка экрана" -#: source/ubl-settings-video.c:389 +#: source/ubl-settings-video-strings.h:35 msgid "Hybrid graphics" msgstr "Гибридная графика" -#: source/ubl-settings-video.c:390 +#: source/ubl-settings-video-strings.h:36 msgid "Fix frame gap (nVidia)" msgstr "Исправить разрыв кадров (nVidia)" -#: source/ubl-settings-video.c:391 +#: source/ubl-settings-video-strings.h:37 msgid "Extra" msgstr "Дополнительно" -#: source/ubl-settings-video.c:393 +#: source/ubl-settings-video-strings.h:39 msgid "Load" msgstr "Загрузить" -#: source/ubl-settings-video.c:394 -msgid "Save" -msgstr "Сохранить" - -#: source/ubl-settings-video.c:396 +#: source/ubl-settings-video-strings.h:41 msgid "On" msgstr "Включить" -#: source/ubl-settings-video.c:397 +#: source/ubl-settings-video-strings.h:42 +msgid "Off" +msgstr "Выключить" + +#: source/ubl-settings-video-strings.h:44 msgid "Automatically choose and use driver" msgstr "Автоматический выбор и использование драйвера" -#: source/ubl-settings-video.c:398 -#, fuzzy +#: source/ubl-settings-video-strings.h:45 msgid "Launch programms through optirun (nVidia): " -msgstr "Запуск программ через (nVidia)" +msgstr "Запуск программ через optirun (nVidia)" -#: source/ubl-settings-video.c:399 -#, fuzzy -msgid "Launch programs through primusun (nVidia): " -msgstr "Запуск программ через (nVidia)" +#: source/ubl-settings-video-strings.h:46 +msgid "Launch programs through primusrun (nVidia): " +msgstr "Запуск программ через primusrun (nVidia)" -#: source/ubl-settings-video.c:400 +#: source/ubl-settings-video-strings.h:47 msgid "discrete video only (AMD/ATI)" msgstr "Только дискретное видео (AMD/ATI)" -#: source/ubl-settings-video.c:402 -#, fuzzy +#: source/ubl-settings-video-strings.h:48 msgid "Load from global configuration" msgstr "Загрузить глобальную конфигурацию" -#: source/ubl-settings-video.c:403 -#, fuzzy +#: source/ubl-settings-video-strings.h:49 msgid "Load from local configuration" msgstr "Загрузить локальную конфигуруцию" -#: source/ubl-settings-video.c:404 -#, fuzzy +#: source/ubl-settings-video-strings.h:50 msgid "Save to global an local configuration" msgstr "Сохранить в глобальную и локальную конфигурацию" -#: source/ubl-settings-video.c:405 -#, fuzzy +#: source/ubl-settings-video-strings.h:51 msgid "Save to global configuration" msgstr "Сохранить в глобальную конфигурацию" -#: source/ubl-settings-video.c:406 -#, fuzzy +#: source/ubl-settings-video-strings.h:52 msgid "Save to local configuration" msgstr "Схоранить в локальную конфигурацию" -#: source/ubl-settings-video.c:407 -#, fuzzy +#: source/ubl-settings-video-strings.h:53 msgid "Documentation" msgstr "Справка" -#: source/ubl-settings-video.c:408 +#: source/ubl-settings-video-strings.h:54 msgid "About" msgstr "О программе" -#: source/ubl-settings-video.c:438 -msgid "Configuration has been loaded" -msgstr "Конфигурация была загружена" +#: source/ubl-settings-video-strings.h:55 +msgid "Installed" +msgstr "Установлено" -#: source/ubl-settings-video.h:22 -#, fuzzy +#: source/ubl-settings-video-strings.h:56 +msgid "Package" +msgstr "Пакет" + +#: source/ubl-settings-video-strings.h:57 +msgid "Supported Devices" +msgstr "Устройства" + +#: source/ubl-settings-video-strings.h:59 +msgid "Accept" +msgstr "Принять" + +#: source/ubl-settings-video-strings.h:61 +msgid "Information" +msgstr "Информация" + +#: source/ubl-settings-video-strings.h:62 +msgid "Drivers" +msgstr "Драйвера" + +#: source/ubl-settings-video-strings.h:63 +msgid "Main settings" +msgstr "Основные настройки" + +#: source/ubl-settings-video-strings.h:64 +msgid "Devices and drivers" +msgstr "Устройства и драйвера" + +#: source/ubl-settings-video-strings.h:65 +msgid "Driver modules" +msgstr "Модули ядра" + +#: source/ubl-settings-video-strings.h:80 +msgid "Error: Port must be chosen to save" +msgstr "Ошибка: Выберите порт для сохранения" + +#: source/ubl-settings-video-strings.h:81 +msgid "Monitor configuration succeedeed" +msgstr "Настройки экрана сохранены" + +#: source/ubl-settings-video-strings.h:83 +msgid "Global configuration loading succseeded." +msgstr "Успешная загрузка глобальной конфигурации" + +#: source/ubl-settings-video-strings.h:84 +msgid "Local configuration loading succseeded." +msgstr "Успешная загрузка локальной конфигурации" + +#: source/ubl-settings-video-strings.h:86 +msgid "Local and global configuration saving succseeded." +msgstr "Успешное сохранение глобальной и локальной конфигурации" + +#: source/ubl-settings-video-strings.h:87 +msgid "Global configuration saving succseeded." +msgstr "Успешное сохранение глобальной конфигурации" + +#: source/ubl-settings-video-strings.h:88 +msgid "Local configuration saving succseeded." +msgstr "Успешная загрузка локальной конфигурации" + +#: source/ubl-settings-video-strings.h:90 +msgid "Yes" +msgstr "Да" + +#: source/ubl-settings-video-strings.h:91 +msgid "No" +msgstr "Нет" + +#: source/ubl-settings-video-strings.h:93 +msgid "Description" +msgstr "Описание" + +#: source/ubl-settings-video-strings.h:94 +msgid "Vendor" +msgstr "Производитель" + +#: source/ubl-settings-video-strings.h:95 +msgid "Model" +msgstr "Модель" + +#: source/ubl-settings-video-strings.h:96 +msgid "Kernel driver in use" +msgstr "Используемый драйвер ядра" + +#: source/ubl-settings-video-strings.h:97 +msgid "Kernel modules" +msgstr "Модули ядра" + +#: source/ubl-settings-video.h:25 msgid "Failed to load global configuration" msgstr "Ошибка загрузки глобальной конфигурации" -#: source/ubl-settings-video.h:23 -#, fuzzy +#: source/ubl-settings-video.h:26 msgid "Failed to load local configuration" msgstr "Ошибка загрузки локальной конфигурации" -#: source/ubl-settings-video.h:25 -#, fuzzy +#: source/ubl-settings-video.h:28 msgid "Saving to global configuration Succeeded" msgstr "Успешное сохранение глобальной конфигурации" -#: source/ubl-settings-video.h:26 -#, fuzzy +#: source/ubl-settings-video.h:29 msgid "Saving to local configuration Succeeded" msgstr "Успешное сохранение локальной конфигурации" + +msgid "VGA compitable controller" +msgstr "VGA-совместимый адаптер" +#~ msgid "Configuration has been loaded" +#~ msgstr "Конфигурация была загружена" + +#, fuzzy +#~ msgid "Main monitor" +#~ msgstr "Основной" + +#, fuzzy +#~ msgid "Proprietary driver: " +#~ msgstr "Проприетарный драйвер: " + #~ msgid "DPMS off" #~ msgstr "DMPS выключен" diff --git a/video-drivers.csv b/video-drivers.csv index e79c785..9fa002b 100644 --- a/video-drivers.csv +++ b/video-drivers.csv @@ -1,8 +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: +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: