diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 51f579e..18b3323 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -36,7 +36,7 @@ void on_terminal_destroy(GtkWidget *, main_window *widgets){ } -gboolean on_command_execute_success(GtkWidget *,gint status,main_window *){ +gboolean on_command_execute_success(GtkWidget *self,gint status,main_window *){ g_mutex_lock(&main_config.progress_mutex); main_config.progress_active=0; @@ -47,6 +47,7 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *){ yon_ubl_status_box_render(yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); } + on_terminal_done(self,0,NULL); return G_SOURCE_REMOVE; } @@ -73,14 +74,14 @@ gboolean on_terminal_check_progress(main_window *widgets){ percentage = atof(last_match); yon_debug_output("%s\n", text); yon_debug_output("%s\n", last_match); - + g_free(text); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100); g_free(last_match); } g_match_info_unref(match); g_mutex_lock(&main_config.progress_mutex); - if (percentage==100){ + if (percentage==100||!main_config.progress_active){ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0); g_mutex_unlock(&main_config.progress_mutex); return G_SOURCE_REMOVE; @@ -115,13 +116,11 @@ void yon_terminal_start(main_window *widgets, char *usr_command){ gtk_style_context_add_class(gtk_widget_get_style_context(widgets->terminal),"opacited"); gtk_style_context_add_class(gtk_widget_get_style_context(widgets->terminal),"workingbg"); gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->TerminalRevealer); - // g_signal_connect(G_OBJECT(widgets->terminal), "child-exited", G_CALLBACK(on_terminal_done), widgets); - // g_signal_connect(G_OBJECT(widgets->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(widgets->terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1); vte_terminal_reset(VTE_TERMINAL(widgets->terminal),0,1); - yon_terminal_integrated_start_shell(widgets->terminal,usr_command,on_terminal_done,widgets); + yon_terminal_integrated_start(widgets->terminal,usr_command); vte_terminal_set_scrollback_lines(VTE_TERMINAL(widgets->terminal), 100); vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->terminal), TRUE); vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(widgets->terminal), TRUE); @@ -129,7 +128,7 @@ void yon_terminal_start(main_window *widgets, char *usr_command){ g_mutex_lock(&main_config.progress_mutex); main_config.progress_active=1; g_mutex_unlock(&main_config.progress_mutex); - g_idle_add((GSourceFunc)on_terminal_check_progress,widgets); + // g_idle_add((GSourceFunc)on_terminal_check_progress,widgets); } void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){ @@ -535,6 +534,7 @@ void yon_interface_update(){ char *gapfix1 = config(GAPFIX1_parameter); char *gapfix2 = config(GAPFIX2_parameter); + g_signal_handlers_block_by_func(G_OBJECT(main_config.widgets->FrameGapCombo),G_CALLBACK(on_gapfix_changed),main_config.widgets); if (!yon_char_is_empty(gapfix1)){ gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),2); @@ -544,6 +544,7 @@ void yon_interface_update(){ } else { gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),0); } + g_signal_handlers_unblock_by_func(G_OBJECT(main_config.widgets->FrameGapCombo),G_CALLBACK(on_gapfix_changed),main_config.widgets); if (!yon_char_is_empty(autodrivers)&&!strcmp(autodrivers,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->AutoDriverCombo),2); @@ -1013,7 +1014,7 @@ gboolean yon_proprietary_clear(main_window *widgets){ gboolean yon_proprietary_append(struct proprietary_struct *target){ GtkTreeIter iter; gtk_list_store_append(main_config.list,&iter); - gtk_list_store_set(main_config.list,&iter,0,target->module_status,1,target->package_status,2,target->drivers[0],3,target->drivers[3],4,_(target->drivers[4]),5,_(target->drivers[5]),7,target->drivers[1],8,target->drivers[2],9,!yon_char_is_empty(target->drivers[1]),10,!yon_char_is_empty(target->drivers[2]),-1); + gtk_list_store_set(main_config.list,&iter,0,target->module_status,1,target->package_status,2,target->drivers[0],3,target->drivers[3],4,_(target->drivers[4]),5,_(target->drivers[5]),7,target->drivers[1],8,target->drivers[2],9,!yon_char_is_empty(target->drivers[1])&&!system(yon_get_is_exist_command(target->drivers[1])),10,!yon_char_is_empty(target->drivers[2])&&!system(yon_get_is_exist_command(target->drivers[2])),-1); free(target); return G_SOURCE_REMOVE; } @@ -1191,8 +1192,8 @@ void yon_adapter_window_setup(main_window *widgets){ yon_char_remove_last_symbol(loaded[i],'\n'); } int pos = yon_char_parsed_check_exist(loaded,loaded_size,(char*)driver_use); - if (pos>-1){ - driver_all=yon_char_new(loaded[pos+1]); + if (pos!=-1){ + driver_all=yon_char_new(loaded[pos]); } yon_char_parsed_free(loaded,loaded_size); char *final_text = yon_char_unite("",DESCRIPTION_LABEL,": ",_(desc), diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 2dcfbca..315842f 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -77,7 +77,7 @@ #define yon_get_kernels_installed "find /usr/lib/modules/ -maxdepth 2 -type f -iname \"pkgbase\" -exec cat {} + 2>/dev/null" -#define yon_get_is_installed_command(target) yon_char_append("pacman -Qs ",target) +#define yon_get_is_installed_command(target) yon_char_append("pacman -Q ",target) #define yon_get_is_exist_command(target) yon_char_append("pacman -Ss ",target) #define get_proprietary_drivers_command "pacman -Sysq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'" @@ -100,9 +100,9 @@ #define INTEGRATEDVGA "INTEGRATEDVGA" #define GAPFIX1_parameter "ENVIRONMENT[profile:__GL_YIELD]" -#define GAPFIX1_command "ubconfig --source global get [environment] ENVIRONMENT[profile:__GL_YIELD]" +#define GAPFIX1_command "ubconfig --source global get [system] ENVIRONMENT[profile:__GL_YIELD]" #define GAPFIX2_parameter "ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]" -#define GAPFIX2_command "ubconfig --source global get [environment] ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]" +#define GAPFIX2_command "ubconfig --source global get [system] ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]" #define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO" #define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE" @@ -113,12 +113,10 @@ #define OPTIRUN_command "ubconfig --source global get [video] OPTIRUN" #define PRIMUSRUN_command "ubconfig --source global get [video] PRIMUSRUN" #define INTEGRATEDVGA_command "ubconfig --source global get [video] INTEGRATEDVGA" -#define KWIN_TRIPLE_BUFFER_command "ubconfig --source global get [/etc/profile.d/ublinux.sh] KWIN_TRIPLE_BUFFER" -#define GL_YIELD_command "ubconfig --source global get [/etc/profile.d/ublinux.sh] __GL_YIELD" #define XORG_PARAMETER "XORG_MONITOR" -#define config_get_command(source) yon_char_unite("ubconfig --source ",source," get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA",NULL) +#define config_get_command(source) yon_char_unite("ubconfig --source ",source," get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA",NULL),yon_char_unite("ubconfig --source ",source," get [system] ENVIRONMENT[profile:__GL_YIELD] ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]",NULL) #define config_get_default_command "" #define config_get_global_only_parameters "" diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index 8e8026d..fa6b607 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -1033,6 +1033,7 @@ 9 + 9 0 @@ -1048,6 +1049,7 @@ 10 + 10 1