Fixed installed drivers check #116

Merged
asmeron merged 5 commits from YanTheKaller/ubl-settings-video:master into master 6 months ago

@ -72,17 +72,16 @@ gboolean on_terminal_check_progress(main_window *widgets){
if (last_match) { if (last_match) {
yon_char_remove_last_symbol(last_match,'%'); yon_char_remove_last_symbol(last_match,'%');
percentage = g_ascii_strtod(last_match,NULL); 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); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100);
g_free(last_match); g_free(last_match);
} else {
gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel));
} }
if (text) g_free(text); if (text) g_free(text);
if (match) g_match_info_unref(match); if (match) g_match_info_unref(match);
g_mutex_lock(&main_config.progress_mutex); g_mutex_lock(&main_config.progress_mutex);
if (percentage>99||!main_config.progress_active){ 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); g_mutex_unlock(&main_config.progress_mutex);
return G_SOURCE_REMOVE; 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); g_signal_connect(G_OBJECT(widgets->terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1);
vte_terminal_reset(VTE_TERMINAL(widgets->terminal),0,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_scrollback_lines(VTE_TERMINAL(widgets->terminal), 100);
vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->terminal), TRUE); vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->terminal), TRUE);
vte_terminal_set_scroll_on_keystroke(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); g_mutex_lock(&main_config.progress_mutex);
main_config.progress_active=1; main_config.progress_active=1;
g_mutex_unlock(&main_config.progress_mutex); 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); 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){ void *yon_proprietary_local_get(main_window *widgets){
g_idle_add((GSourceFunc)yon_proprietary_clear,widgets); g_idle_add((GSourceFunc)yon_proprietary_clear,widgets);
int kernels_size; 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){ if (!kernels_size){
yon_ubl_status_box_render_thread(KERNELS_SUPPORTED_UNFOUND_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); 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<kernels_size;i++){ for (int i=0;i<kernels_size;i++){
yon_char_remove_last_symbol(kernels_installed[i],'\n'); yon_char_remove_last_symbol(kernels_installed[i],'\n');
struct proprietary_kernel_append_struct *cur = malloc(sizeof(struct proprietary_kernel_append_struct)); struct proprietary_kernel_append_struct *cur = malloc(sizeof(struct proprietary_kernel_append_struct));
@ -1094,11 +1093,21 @@ void *yon_proprietary_local_get(main_window *widgets){
for (int i=0;i<packages_size;i++){ for (int i=0;i<packages_size;i++){
yon_char_remove_last_symbol(packages[i],'\n'); yon_char_remove_last_symbol(packages[i],'\n');
g_hash_table_add(table,packages[i]); g_hash_table_add(table,packages[i]);
printf("%s\n",packages[i]);
} }
free(packages); free(packages);
} }
int installed_size;
config_str installed_packages = yon_config_load(yon_get_add_installed_packages,&installed_size);
GHashTable *installed = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
if (installed_packages){
for (int i=0;i<installed_size;i++){
yon_char_remove_last_symbol(installed_packages[i],'\n');
g_hash_table_add(installed,installed_packages[i]);
}
free(installed_packages);
}
g_idle_add((GSourceFunc)yon_proprietary_disconnect,widgets); g_idle_add((GSourceFunc)yon_proprietary_disconnect,widgets);
for (int dr_desc=1;dr_desc<size;dr_desc++){ for (int dr_desc=1;dr_desc<size;dr_desc++){
int current_size; int current_size;
@ -1109,8 +1118,8 @@ void *yon_proprietary_local_get(main_window *widgets){
g_hash_table_contains(table,current[1]))|| g_hash_table_contains(table,current[1]))||
(!yon_char_is_empty(current[2])&& (!yon_char_is_empty(current[2])&&
g_hash_table_contains(table,current[2]))){ g_hash_table_contains(table,current[2]))){
int module_status = !yon_char_is_empty(current[1])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[1])>-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])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[2])>-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)); struct proprietary_struct *cur = malloc(sizeof(struct proprietary_struct));
cur->drivers=current; cur->drivers=current;
cur->drivers_size=current_size; 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(table);
g_hash_table_unref(installed);
if (!size){ if (!size){
g_idle_add((GSourceFunc)yon_proprietary_connect,widgets); g_idle_add((GSourceFunc)yon_proprietary_connect,widgets);
} }

@ -60,6 +60,7 @@
#define yon_get_is_installed_command(target) yon_char_append("pacman -Q ",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 yon_get_is_exist_command(target) yon_char_append("pacman -Ss ",target)
#define yon_get_all_pacman_packages_command "pacman -Slq" #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 "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" #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[*]" #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{ typedef struct{
char* command; char* command;
void *data; void *data;
@ -121,9 +119,6 @@ typedef dictionary* monitor_config;
typedef dictionary* proprietary_config; typedef dictionary* proprietary_config;
typedef dictionary* monitor_view; typedef dictionary* monitor_view;
typedef struct { typedef struct {
config_str line; config_str line;
int size; int size;

@ -93,6 +93,7 @@
<object class="GtkRevealer" id="TerminalMoreRevieler"> <object class="GtkRevealer" id="TerminalMoreRevieler">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="reveal-child">True</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>

Loading…
Cancel
Save