diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 4cb175e..a923aac 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -72,17 +72,16 @@ gboolean on_terminal_check_progress(main_window *widgets){ if (last_match) { yon_char_remove_last_symbol(last_match,'%'); percentage = g_ascii_strtod(last_match,NULL); - yon_debug_output("%s\n", text); - yon_debug_output("%s\n", last_match); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100); g_free(last_match); + } else { + gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel)); } if (text) g_free(text); if (match) g_match_info_unref(match); g_mutex_lock(&main_config.progress_mutex); if (percentage>99||!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; } @@ -129,7 +128,7 @@ void yon_terminal_start(main_window *widgets, char *usr_command){ 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(widgets->terminal,usr_command); + yon_terminal_integrated_start_shell(widgets->terminal,usr_command,NULL,NULL); 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); @@ -139,6 +138,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); + gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0.00001); g_idle_add((GSourceFunc)on_terminal_check_progress,widgets); } @@ -1066,12 +1066,11 @@ gboolean yon_proprietary_connect(main_window *widgets){ void *yon_proprietary_local_get(main_window *widgets){ g_idle_add((GSourceFunc)yon_proprietary_clear,widgets); int kernels_size; - config_str kernels_installed=yon_config_load(yon_debug_output("%s\n",yon_get_kernels_installed),&kernels_size); + config_str kernels_installed=yon_config_load(yon_get_kernels_installed,&kernels_size); if (!kernels_size){ yon_ubl_status_box_render_thread(KERNELS_SUPPORTED_UNFOUND_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } - yon_debug_output("%s\n","Kernel add"); for (int i=0;i-1:0; - int package_status = !yon_char_is_empty(current[2])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[2])>-1:0; + int module_status = !yon_char_is_empty(current[1])?g_hash_table_contains(installed,current[1]):0; + int package_status = !yon_char_is_empty(current[2])?g_hash_table_contains(installed,current[2]):0; struct proprietary_struct *cur = malloc(sizeof(struct proprietary_struct)); cur->drivers=current; cur->drivers_size=current_size; @@ -1126,6 +1135,7 @@ void *yon_proprietary_local_get(main_window *widgets){ } } g_hash_table_unref(table); + g_hash_table_unref(installed); if (!size){ g_idle_add((GSourceFunc)yon_proprietary_connect,widgets); } diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index e12adad..f305644 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -60,6 +60,7 @@ #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 yon_get_all_pacman_packages_command "pacman -Slq" +#define yon_get_add_installed_packages "pacman -Qq" #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 get_adapter_info_json "lshw -c display -quiet -json" @@ -101,9 +102,6 @@ #define XORG_MONITOR_get_command "ubconfig --source global get [video] XORG_MONITOR[*]" -char *drivers_always_active[] = {"lib32-vulkan-intel","xf86-video-intel"}; -int drivers_always_active_size = 3; - typedef struct{ char* command; void *data; @@ -121,9 +119,6 @@ typedef dictionary* monitor_config; typedef dictionary* proprietary_config; typedef dictionary* monitor_view; - - - typedef struct { config_str line; int size; diff --git a/ubl-settings-video-terminal.glade b/ubl-settings-video-terminal.glade index 5d55faa..6867c43 100644 --- a/ubl-settings-video-terminal.glade +++ b/ubl-settings-video-terminal.glade @@ -93,6 +93,7 @@ True False + True True