diff --git a/source/ubl-settings-video-strings.h b/source/ubl-settings-video-strings.h index cf942d2..e0594d1 100644 --- a/source/ubl-settings-video-strings.h +++ b/source/ubl-settings-video-strings.h @@ -47,4 +47,7 @@ #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.") \ No newline at end of file +#define LOCAL_SAVE_SUCCESS _("Local configuration saving succseeded.") + +#define YES_LABEL _("Yes") +#define NO_LABEL _("No") \ No newline at end of file diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index d758d57..ac02960 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -72,10 +72,101 @@ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ 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); + // vte_terminal_reset(VTE_TERMINAL(terminal),0,1); + // gtk_widget_destroy(terminal); + // gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalBox),0); +} + +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); +} + 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"); + // gtk_size_group_add_widget(GTK_SIZE_GROUP(gtk_builder_get_object(builder,"sgroup")),yon_gtk_builder_get_widget(builder,"TerminalFrame")); + // gtk_size_group_add_widget(GTK_SIZE_GROUP(gtk_builder_get_object(builder,"sgroup")),widgets->TerminalOverlay); + 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(usr_command," ;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){ @@ -85,6 +176,19 @@ void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){ 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,"virtualbox")); + + +} + +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); pthread_t tid; char **command=new_arr(char*,2); gchar **envp = g_get_environ(); @@ -95,11 +199,11 @@ void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){ env[1]=NULL; GtkWidget *terminal = vte_terminal_new(); - // vte_terminal_set_size(VTE_TERMINAL(terminal),50,100); gtk_box_pack_start(GTK_BOX(widgets->TerminalBox),terminal,1,1,0); VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL); // VtePty *pty = vte_terminal_pty_new_sync(VTE_TERMINAL(terminal),VTE_PTY_DEFAULT,NULL,NULL); vte_terminal_set_pty(VTE_TERMINAL(terminal),pty); + char *install_command=yon_char_unite(install_proprietary_command,name,"\n",NULL); vte_terminal_spawn_async(VTE_TERMINAL(terminal), VTE_PTY_DEFAULT, NULL, /* working directory */ @@ -111,7 +215,7 @@ void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){ -1, /* timeout */ NULL, /* cancellable */ child_ready, /* callback */ - NULL); /* user_data */ + install_command); /* user_data */ vte_pty_spawn_async(pty, NULL, /* working directory */ command, /* command */ @@ -123,25 +227,10 @@ void on_driver_pack_install(GtkWidget *self,widgets_dict *widgets){ NULL, /* cancellable */ NULL, /* callback */ NULL); /* user_data */ - char *install_command=yon_char_unite(install_proprietary_command,name,"\n",NULL); - vte_terminal_feed_child(VTE_TERMINAL(terminal),install_command,strlen(install_command)); - vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 0); vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), FALSE); - vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); - gtk_widget_show_all(widgets->TerminalWindow); - // pthread_create(&tid,NULL,(void*)yon_launch_with_output,(void*)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); - pthread_t tid; + vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), FALSE); + vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal),100); + gtk_widget_show_all(widgets->TerminalRevealer); // pthread_create(&tid,NULL,(void*)yon_launch_with_output,(void*)yon_char_get_augumented(install_proprietary_command,name)); } @@ -155,6 +244,48 @@ void on_driver_pack_delete(GtkWidget *self,widgets_dict *widgets){ gtk_tree_selection_get_selected(selection,&list_s,&iter); gtk_tree_model_get(list_s,&iter,1,&name,-1); pthread_t tid; + 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; + + GtkWidget *terminal = vte_terminal_new(); + // vte_terminal_set_size(VTE_TERMINAL(terminal),50,100); + gtk_box_pack_start(GTK_BOX(widgets->TerminalBox),terminal,1,1,0); + VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL); + // VtePty *pty = vte_terminal_pty_new_sync(VTE_TERMINAL(terminal),VTE_PTY_DEFAULT,NULL,NULL); + vte_terminal_set_pty(VTE_TERMINAL(terminal),pty); + char *install_command=yon_char_unite(delete_proprietary_command,name,"\n",NULL); + vte_terminal_spawn_async(VTE_TERMINAL(terminal), + VTE_PTY_DEFAULT, + NULL, /* working directory */ + command, /* command */ + NULL, /* environment */ + 0, /* spawn flags */ + NULL, NULL, /* child setup */ + NULL, /* child pid */ + -1, /* timeout */ + NULL, /* cancellable */ + child_ready, /* callback */ + install_command); /* user_data */ + vte_pty_spawn_async(pty, + NULL, /* working directory */ + command, /* command */ + NULL, /* environment */ + 0, /* spawn flags */ + NULL, NULL, /* child setup */ + NULL, /* child pid */ + -1, /* timeout */ + NULL, /* cancellable */ + NULL, /* callback */ + NULL); /* user_data */ + vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 0); + vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), FALSE); + vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); + gtk_widget_show_all(widgets->TerminalRevealer); // pthread_create(&tid,NULL,(void*)yon_launch_with_output,(void*)yon_char_get_augumented(delete_proprietary_command,name)); } @@ -168,6 +299,48 @@ void on_driver_delete(GtkWidget *self,widgets_dict *widgets){ gtk_tree_selection_get_selected(selection,&list_s,&iter); gtk_tree_model_get(list_s,&iter,1,&name,-1); pthread_t tid; + 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; + + GtkWidget *terminal = vte_terminal_new(); + // vte_terminal_set_size(VTE_TERMINAL(terminal),50,100); + gtk_box_pack_start(GTK_BOX(widgets->TerminalBox),terminal,1,1,0); + VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL); + // VtePty *pty = vte_terminal_pty_new_sync(VTE_TERMINAL(terminal),VTE_PTY_DEFAULT,NULL,NULL); + vte_terminal_set_pty(VTE_TERMINAL(terminal),pty); + char *install_command=yon_char_unite(delete_proprietary_command,name,"\n",NULL); + vte_terminal_spawn_async(VTE_TERMINAL(terminal), + VTE_PTY_DEFAULT, + NULL, /* working directory */ + command, /* command */ + NULL, /* environment */ + 0, /* spawn flags */ + NULL, NULL, /* child setup */ + NULL, /* child pid */ + -1, /* timeout */ + NULL, /* cancellable */ + child_ready, /* callback */ + install_command); /* user_data */ + vte_pty_spawn_async(pty, + NULL, /* working directory */ + command, /* command */ + NULL, /* environment */ + 0, /* spawn flags */ + NULL, NULL, /* child setup */ + NULL, /* child pid */ + -1, /* timeout */ + NULL, /* cancellable */ + NULL, /* callback */ + NULL); /* user_data */ + vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 0); + vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), FALSE); + vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); + gtk_widget_show_all(widgets->TerminalRevealer); // pthread_create(&tid,NULL,(void*)yon_launch_with_output,(void*)yon_char_get_augumented(delete_proprietary_command,name)); } @@ -349,7 +522,7 @@ void on_configuration_save_local(GtkWidget *self, widgets_dict *widgets) yon_config_save(delstr); } if (str){ - printf(str); + // printf(str); yon_config_save(str); videoconfig.status_render.text_to_render=LOCAL_SAVE_SUCCESS; @@ -384,7 +557,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); } @@ -1277,9 +1450,7 @@ void yon_setup_widgets(widgets_dict *widgets) 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->TerminalWindow = yon_gtk_builder_get_widget(widgets->builder, "TerminalWindow"); - widgets->TerminalBox = yon_gtk_builder_get_widget(widgets->builder, "TerminalBox"); - widgets->TerminalHeaderTitleLabel = yon_gtk_builder_get_widget(widgets->builder, "TerminalHeaderTitleLabel"); + 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")); diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 9845eba..f3fda1a 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -53,7 +53,7 @@ #define remove_drivers_local_command "/usr/bin/ubconfig --target global remove video " -#define install_proprietary_command "pkexec pacman -Sy " +#define install_proprietary_command "tput cup 0 0 && tput ed; pkexec pacman -Sy " #define delete_proprietary_command "pkexec pacman -R --noconfirm " @@ -233,9 +233,13 @@ typedef struct GtkTreeViewColumn *driverDescriptionColumn; GtkTreeViewColumn *driverSupportedColumn; - GtkWidget *TerminalWindow; + GtkWidget *TerminalOverlay; GtkWidget *TerminalBox; - GtkWidget *TerminalHeaderTitleLabel; + GtkWidget *TerminalRevealer; + GtkWidget *TerminalInfoLabel; + GtkWidget *TerminalMoreButton; + GtkWidget *TerminalScroll; + GtkWidget *TerminalMoreRevieler; } widgets_dict; typedef struct diff --git a/source/ubl-utils.c b/source/ubl-utils.c index fb74917..92f05a4 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -401,6 +401,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;j + @@ -99,7 +100,8 @@ - + + 800 400 False @@ -107,7 +109,7 @@ 400 com.ublinux.ubl-settings-video - + True False vertical @@ -152,7 +154,6 @@ - False О Программе @@ -199,6 +200,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 @@ -326,189 +487,39 @@ False document-edit-symbolic - - True - False - open-menu-symbolic - - - - True + + 800 + 600 False - start - 3 - 3 - 10 - 20 - vertical - - - True - False - True - - - - - - - False - True - 0 - - - - - True - False - 5 - 5 - - - - - - - False - True - 1 - - + 800 + 600 + com.ublinux.ubl-settings-video - + True False - 15 - - - True - True - True - image14 - - - - False - True - 0 - - - - - True - True - True - image13 - - - - False - True - 1 - - - - - True - True - True - end - image3 - - - - False - True - end - 2 - - + True + vertical - - True - True - True - image15 - - - - False - True - 3 - - - - - False - True - 2 - - - - - True - False - process-stop-symbolic - - - True - False - emblem-ok-symbolic - - - False - True - com.ublinux.ubl-settings-video - - - True - False - vertical - - + True False - 5 - 5 - 5 - 5 vertical - + True False - 5 - - Enabled + True - True - False - True + False + 5 + 5 + 5 + 5 + 6 + 6 + 25 False @@ -516,11 +527,51 @@ 0 + + + True + True + + + True + False + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + + + + + + + + + + + + + True + True + 1 + + False True - 1 + 0 @@ -529,40 +580,18 @@ False vertical - + + 81 True False - end - 5 - True - - - Save - True - True - True - image5 - - - False - True - end - 0 - - - - Cancel + True - True - True - image4 + False + start - False - True - end - 1 + -1 @@ -576,723 +605,180 @@ False True - end - 2 + 1 - + True - False - vertical + True + 5 - + + 165 True - False - vertical - 5 - - - True - False - 5 - - - True - False - Port - - - False - True - 0 - - - - - True - False - 0 - - - True - True - 1 - - - - - Main display - True - True - False - True - - - False - True - 2 - - - - - False - True - 1 - - + True + 5 + 5 + 5 + 5 + external - + True False - 5 - - - True - False - Resolution (px): - - - False - True - 0 - - - + True False - 0 - - - True - True - 1 - - - - - Show unsupported - True - True - False - True - - - False - True - 2 - - - - - False - True - 2 - - - - - True - False - 5 - - - True - False - Frequency (Hz): - - - False - True - 0 - - - - - True - False - 0 - - - True - True - 1 - - - - - False - True - 3 - - - - - True - False - 5 - - - True - False - Rotation: - - - False - True - 0 - - - - - True - False - 0 - - - True - True - 1 - - - - - False - True - 4 - - - - - True - False - 5 - - - True - False - Position: - - - False - True - 0 - - - - - True - False - 5 - True + 5 + 5 + 5 + 5 + 5 + vertical - + True False - 0 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + Automatically choose and use driver + True + True + False + start + True + + + False + True + 0 + + + + + True + False + 5 + + + True + False + vertical + 5 + + + True + False + start + Failsafe driver nVidia: + 0 + + + False + True + 1 + + + + + True + False + start + Failsafe driver AMD/ATI: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + True + True + 1 + + + + + False + True + 1 + + + + + + + + + True + False + Driver + + - True + False True 0 - - True - False - 0 - - - True - True - 1 - - - - - True - True - 1 - - - - - False - True - 5 - - - - - Do not switch off display - True - True - False - True - - - False - True - 6 - - - - - Create modeline for current resolution with CVT - True - True - False - True - - - False - True - 7 - - - - - Use "CVT Reduced Blanking"gshgrbehr - True - True - False - True - - - False - True - 8 - - - - - Create modeline for current resolution with GTF - True - True - False - True - - - False - True - 9 - - - - - True - False - - - False - True - 10 - - - - - False - True - 0 - - - - - True - False - 5 - 5 - vertical - 5 - - - Configure manually through parameter line: - True - True - False - True - - - False - True - 0 - - - - - True - False - True - center - 1920x1080 - - - True - True - 1 - - - - - False - True - 1 - - - - - False - True - 3 - - - - - True - True - 0 - - - - - - - True - False - go-bottom-symbolic - - - True - False - user-trash-symbolic - - - True - False - go-bottom-symbolic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 800 - 600 - False - 800 - 600 - com.ublinux.ubl-settings-video - - - True - False - True - vertical - - - True - False - vertical - - - True - False - - - True - False - 5 - 5 - 5 - 5 - 6 - 6 - 25 - - - False - True - 0 - - - - - True - True - - - True - False - - - True - False - start - 5 - 5 - 5 - 5 - 6 - 6 - - - - - - - - - - - - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - vertical - - - 81 - True - False - - - True - False - start - - - -1 - - - - - False - True - 0 - - - - - False - True - 1 - - - - - True - True - 5 - - - 165 - True - True - 5 - 5 - 5 - 5 - external - - - True - False - - - True - False - 5 - 5 - 5 - 5 - 5 - vertical - - - True - False - 0.019999999552965164 - in - - - True - False - 5 - 5 - 12 - 5 - - - True - False - vertical - - - Automatically choose and use driver - True - True - False - start - True - - - False - True - 0 - - - - - True - False - 5 - - - True - False - vertical - 5 - - - True - False - start - Failsafe driver nVidia: - 0 - - - False - True - 1 - - - - - True - False - start - Failsafe driver AMD/ATI: - 0 - - - False - True - 2 - - - - - False - True - 0 - - - - - True - False - vertical - 5 - - - True - False - - - False - True - 1 - - - - - True - False - - - False - True - 2 - - - - - True - True - 1 - - - - - False - True - 1 - - - - - - - - - True - False - Driver - - - - - False - True - 0 - - - - + True False vertical @@ -1558,334 +1044,1163 @@ - - True - False - 5 - 5 - - - True - False - Fix frame gap (nVidia): - 0 - - - False - True - 0 - - - - - True - False - - - True - True - 1 - - - - - False - True - 1 - + + True + False + 5 + 5 + + + True + False + Fix frame gap (nVidia): + 0 + + + False + True + 0 + + + + + True + False + + + True + True + 1 + + + + + False + True + 1 + + + + + + + + + True + False + Extra + + + + + False + True + 3 + + + + + + + + + + + True + False + Main Settings + + + False + + + + + True + False + + + True + True + 5 + 5 + 5 + 5 + 5 + 5 + + + True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 + + + True + True + + + True + True + 5 + liststore6 + 1 + True + + + + + + Installed + + + + 0 + + + + + + + Package + + + + 1 + + + + + + + Driver + + + + 2 + + + + + + + Description + + + + 3 + + + + + + + Supported Devices + + + + 4 + + + + + + + + + True + True + 0 + + + + + True + 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 + 1 + + + + + + + True + False + Driver Modules + + + False + + + + + True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 + + + True + True + + + True + True + 5 + liststore6 + 0 + vertical + True + 2 + + + + + + Installed + + + + 0 + + + + + + + Package + + + + 1 + + + + + + + Driver + + + + 2 + + + + + + + Description + + + + 3 + + + + + + + Supported Devices + + + + 4 + - - + + + True + True + 0 + + + + + True + False + center + 5 + + + Установить True - False - Extra + 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 - 3 + 1 + + 1 + + + + + True + False + Drivers + + + 1 + False + + + + + + + + + + + -1 + + + + + 1 + + + + + True + False + Drivers + + + 1 + False + + + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + 0 + none + + + True + False + 12 + + + True + False + + + + + + + + + + True + False + 5 + 5 + Devices and Drivers + + + + + 2 + + + + + True + False + Information + + + 2 + False + + + + + True + True + 2 + + + + + True + True + 0 + + + + + + + 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 + + + + + True + False + + + True + True + False + True + LoadConfigurationMenu + none + + + True + False + + + True + False + 5 + 5 + 5 + 5 + Load + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + 1 + + + + + True + False + + + True + True + False + True + True + SaveConfigurationMenu + none + + + True + False + + + True + False + 5 + 5 + 5 + 5 + Save + + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + True + True + False + True + True + SettingsMenu + none + + + + + + False + True + 1 + + + + + end + 3 + + + + + + + vertical + + + + + + + + + + + + + + + + + + + + + + True + False + open-menu-symbolic + + + + True + False + start + 3 + 3 + 10 + 20 + vertical + + + True + False + True + + + + + + + False + True + 0 + + + + + True + False + 5 + 5 + + + + + + + False + True + 1 + + + + + True + False + 15 + + + True + True + True + image14 + + + + False + True + 0 + + + + + True + True + True + image13 + + + + False + True + 1 + + + + + True + True + True + end + image3 + + + + False + True + end + 2 + + + + + True + True + True + image15 + + + + False + True + 3 + + + + + False + True + 2 + + + + + True + False + process-stop-symbolic + + + True + False + emblem-ok-symbolic + + + False + True + com.ublinux.ubl-settings-video + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + 5 + + + Enabled + True + True + False + True + + False + True + 0 + - - + + + False + True + 1 + + + + + True + False + vertical + + True False - Main Settings + end + 5 + True + + + Save + True + True + True + image5 + + + False + True + end + 0 + + + + + Cancel + True + True + True + image4 + + + False + True + end + 1 + + - False + False + True + 0 + + + False + True + end + 2 + + + + + True + False + vertical - + True - True - 5 - 5 - 5 - 5 - 5 - 5 + False + vertical + 5 + + + True + False + 5 + + + True + False + Port + + + False + True + 0 + + + + + True + False + 0 + + + True + True + 1 + + + + + Main display + True + True + False + True + + + False + True + 2 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + False + Resolution (px): + + + False + True + 0 + + + + + True + False + 0 + + + True + True + 1 + + + + + Show unsupported + True + True + False + True + + + False + True + 2 + + + + + False + True + 2 + + + + + True + False + 5 + + + True + False + Frequency (Hz): + + + False + True + 0 + + + + + True + False + 0 + + + True + True + 1 + + + + + False + True + 3 + + True False - 5 - 5 - 5 - 5 - 5 - vertical 5 - + True - True - - - True - True - 5 - liststore6 - 1 - True - - - - - - Installed - - - - 0 - - - - - - - Package - - - - 1 - - - - - - - Driver - - - - 2 - - - - - - - Description - - - - 3 - - - - - - - Supported Devices - - - - 4 - - - - - - + False + Rotation: - True + False True 0 - + True 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 - - + 0 - False + True True 1 - - - - True - False - Driver Modules - - False + False + True + 4 True False - 5 - 5 - 5 - 5 - 5 - vertical 5 - + True - True - - - True - True - 5 - liststore6 - 0 - vertical - True - 2 - - - - - - Installed - - - - 0 - - - - - - - Package - - - - 1 - - - - - - - Driver - - - - 2 - - - - - - - Description - - - - 3 - - - - - - - Supported Devices - - - - 4 - - - - - - + False + Position: - True + False True 0 @@ -1894,290 +2209,135 @@ True False - center 5 + True - - Установить + True - True - True - image6 + False + 0 - False + True True - end 0 - - Удалить + True - True - True - image7 + False + 0 - False + True True - end 1 - - - Подробнее - True - True - True - image12 - - - False - True - end - 2 - - - False + True True 1 - 1 + False + True + 5 - - + + + Do not switch off display True - False - Drivers + True + False + True - 1 - False + False + True + 6 - - - - - - - - 1 - - - - - True - False - Drivers - - - 1 - False - - - - - True - False - 5 - 5 - 5 - 5 - 5 - 5 - 0 - none - - + + Create modeline for current resolution with CVT True - False - 12 - - - True - False - - - - - - - - + True + False + True + + False + True + 7 + - - + + + Use "CVT Reduced Blanking"gshgrbehr True - False - 5 - 5 - Devices and Drivers + True + False + True + + False + True + 8 + - - - 2 - - - - - True - False - Information - - - 2 - False - - - - - True - True - 2 - - - - - True - True - 0 - - - - - - - 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 - - - - - True - False - - - True - True - False - True - LoadConfigurationMenu - none - - - True - False - + + Create modeline for current resolution with GTF True - False - 5 - 5 - 5 - 5 - Load + True + False + True False True - 0 + 9 - + True False - pan-down-symbolic False True - 1 + 10 + + False + True + 0 + - - - False - True - 0 - - - - - 1 - - - - - True - False - - - True - True - False - True - True - SaveConfigurationMenu - none True False + 5 + 5 + vertical + 5 - + + Configure manually through parameter line: True - False - 5 - 5 - 5 - 5 - Save - + True + False + True False @@ -2186,75 +2346,88 @@ - + True - False - pan-down-symbolic + False + True + center + 1920x1080 - False + True True 1 + + False + True + 1 + False True - 0 - - - - - True - True - False - True - True - SettingsMenu - none - - - - - - False - True - 1 + 3 - end - 3 + True + True + 0 - - vertical - - - - - - - - - - - + + True + False + go-bottom-symbolic - - - - - - - + + True + False + user-trash-symbolic + + + True + False + go-bottom-symbolic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + both True