@ -37,16 +37,7 @@ void on_open_documentation_confirmation(GtkWidget *self, char *link){
widgets - > Window = yon_gtk_builder_get_widget ( builder , " helpConfirmationWindow " ) ;
widgets - > Window = yon_gtk_builder_get_widget ( builder , " helpConfirmationWindow " ) ;
widgets - > AcceptButton = yon_gtk_builder_get_widget ( builder , " ReadHelpButton " ) ;
widgets - > AcceptButton = yon_gtk_builder_get_widget ( builder , " ReadHelpButton " ) ;
widgets - > CloseButton = yon_gtk_builder_get_widget ( builder , " CancelHelpButton " ) ;
widgets - > CloseButton = yon_gtk_builder_get_widget ( builder , " CancelHelpButton " ) ;
widgets - > HatText = yon_gtk_builder_get_widget ( builder , " webHeaderNameLabel " ) ;
widgets - > HeaderText = yon_gtk_builder_get_widget ( builder , " helpHeader " ) ;
widgets - > InfoText = yon_gtk_builder_get_widget ( builder , " helpText " ) ;
widgets - > AlwaysOpenCheck = yon_gtk_builder_get_widget ( builder , " AlwaysOpenDocumentationCheckbox " ) ;
widgets - > AlwaysOpenCheck = yon_gtk_builder_get_widget ( builder , " AlwaysOpenDocumentationCheckbox " ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > HatText ) , TITLE_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > HeaderText ) , HELP_TITLE_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > InfoText ) , HELP_INFO_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > AcceptButton ) , OPEN_HELP_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > AlwaysOpenCheck ) , HELP_ALWAYS_OPEN_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > CloseButton ) , CANCEL_LABEL ) ;
gtk_widget_show_all ( widgets - > Window ) ;
gtk_widget_show_all ( widgets - > Window ) ;
g_signal_connect ( G_OBJECT ( widgets - > CloseButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > CloseButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > AcceptButton ) , " clicked " , G_CALLBACK ( yon_open_browser ) , yon_char_new ( link ) ) ;
g_signal_connect ( G_OBJECT ( widgets - > AcceptButton ) , " clicked " , G_CALLBACK ( yon_open_browser ) , yon_char_new ( link ) ) ;
@ -118,13 +109,12 @@ void on_file_chooser_open(GtkWidget *self, main_window *widgets){
void on_application_chooser_open ( GtkWidget * self , main_window * widgets ) {
void on_application_chooser_open ( GtkWidget * self , main_window * widgets ) {
char * app = yon_app_chooser_open_with_sections ( GRAPHICS_LABEL , " Graphics " , " " ,
char * app = yon_app_chooser_open_with_sections ( GRAPHICS_LABEL , " Graphics " , " " ,
TOOLS_LABEL , " Graphics " , " " ,
TOOLS_LABEL , " Utility " , " " ,
INTERNET_LABEL , " Network " , " " ,
INTERNET_LABEL , " Network " , " " ,
MULTIMEDIA_LABEL , " AudioVideo " , " " ,
MULTIMEDIA_LABEL , " AudioVideo " , " " ,
SETTINGS_LABEL , " Settings " , " " ,
SETTINGS_LABEL , " Settings " , " " ,
EDUCATION_LABEL , " Education " , " " ,
EDUCATION_LABEL , " Education " , " " ,
OFFICE_LABEL , " Office " , " " ,
OFFICE_LABEL , " Office " , " " ,
OTHER_LABEL , " Utility " , " " ,
DEVELOPMENT_LABEL , " Development " , " " ,
DEVELOPMENT_LABEL , " Development " , " " ,
SYSTEM_LABEL , " System " , " " , NULL ) ;
SYSTEM_LABEL , " System " , " " , NULL ) ;
if ( app ) {
if ( app ) {
@ -132,6 +122,127 @@ void on_application_chooser_open(GtkWidget *self, main_window *widgets){
}
}
}
}
void on_user_changed ( GtkWidget * self , main_window * widgets ) {
GtkAdjustment * adj = gtk_spin_button_get_adjustment ( GTK_SPIN_BUTTON ( widgets - > prioritySpin ) ) ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( self ) ) = = 0 ) {
gtk_adjustment_set_lower ( adj , - 20 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > highestPriorityLabel ) , PRIORITY_ROOT_LABEL ) ;
}
else {
gtk_adjustment_set_lower ( adj , 0 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > highestPriorityLabel ) , PRIORITY_USER_LABEL ) ;
}
if ( gtk_adjustment_get_value ( adj ) < gtk_adjustment_get_lower ( adj ) ) gtk_adjustment_set_value ( adj , gtk_adjustment_get_lower ( adj ) ) ;
}
void on_su_sudo_activate ( GtkWidget * self , main_window * widgets ) {
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( self ) ) ) {
gtk_widget_set_sensitive ( widgets - > runWithTerminalCheck , 0 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) , 1 ) ;
} else {
gtk_widget_set_sensitive ( widgets - > runWithTerminalCheck , 1 ) ;
}
}
void on_user_activate ( GtkToggleButton * self , main_window * widgets ) {
if ( ! gtk_toggle_button_get_active ( self ) ) gtk_widget_set_sensitive ( ( widgets - > runWithTerminalCheck ) , 1 ) ;
if ( gtk_toggle_button_get_active ( self ) & & ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserSuCheck ) ) | | gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserSudoCheck ) ) ) )
gtk_widget_set_sensitive ( ( widgets - > runWithTerminalCheck ) , 0 ) ;
}
void on_user_switching ( GtkToggleButton * self , main_window * widgets ) {
GtkAdjustment * adj = gtk_spin_button_get_adjustment ( GTK_SPIN_BUTTON ( widgets - > prioritySpin ) ) ;
if ( gtk_toggle_button_get_active ( self ) ) {
if ( ! gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) ) {
gtk_adjustment_set_lower ( adj , - 20 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > highestPriorityLabel ) , PRIORITY_ROOT_LABEL ) ;
} else {
gtk_adjustment_set_lower ( adj , 0 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > highestPriorityLabel ) , PRIORITY_USER_LABEL ) ;
}
} else {
gtk_adjustment_set_lower ( adj , 0 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > highestPriorityLabel ) , PRIORITY_USER_LABEL ) ;
}
if ( gtk_adjustment_get_value ( adj ) < gtk_adjustment_get_lower ( adj ) ) gtk_adjustment_set_value ( adj , gtk_adjustment_get_lower ( adj ) ) ;
}
void on_setup_command ( GtkWidget * self , main_window * widgets ) {
char * target = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > TargetNameEntry ) ) ;
if ( target & & strcmp ( target , " " ) ) {
char * final_command ;
char * terminal_exec = yon_dictionary_get_data ( yon_dictionary_get ( & main_config . terminals , ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithTerminalCombo ) ) ) , terminal_info * ) - > exec_file ;
char * terminal_hold = yon_dictionary_get_data ( main_config . terminals , terminal_info * ) - > hold ;
char * terminal_exec_arg = yon_dictionary_get_data ( main_config . terminals , terminal_info * ) - > exec_arg ;
char * user = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithUserCombo ) ) ;
char * priority = yon_char_append ( " nice -n " , yon_char_from_long ( gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( widgets - > prioritySpin ) ) ) ) ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserCheck ) ) ) {
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserPkexecCheck ) ) ) {
final_command = yon_char_unite ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) ) ? yon_char_unite ( terminal_exec , " " , ! strstr ( target , " . " ) ? terminal_hold : " " , " " , terminal_exec_arg , " " , NULL ) : " " , " pkexec " , NULL ) ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) = = 0 ) { //root
final_command = yon_char_unite ( final_command , " --user root env HOME=$HOME DISPLAY=$DISPLAY WAYLAND_DISPLAY=$WAYLAND_DISPLAY XAUTHORITY=$XAUTHORITY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS XDG_SESSION_TYPE=$XDG_SESSION_TYPE XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR SESSION_MANAGER=$SESSION_MANAGER GNOME_DESKTOP_SESSION_ID=$GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION=$KDE_FULL_SESSION " , NULL ) ;
} else {
final_command = yon_char_unite ( final_command , " --user " , user , " env HOME=$HOME DISPLAY=$DISPLAY WAYLAND_DISPLAY=$WAYLAND_DISPLAY XAUTHORITY=$XAUTHORITY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS XDG_SESSION_TYPE=$XDG_SESSION_TYPE " , NULL ) ;
}
if ( strstr ( target , " . " ) ) {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , " xdg-open " , target , NULL ) ;
} else {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , target , NULL ) ;
}
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserSuCheck ) ) ) {
final_command = yon_char_unite ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) ) ? yon_char_unite ( terminal_exec , " " , ! strstr ( target , " . " ) ? terminal_hold : " " , " " , terminal_exec_arg , " " , NULL ) : " " , " su " , NULL ) ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) = = 0 ) { //root
final_command = yon_char_unite ( final_command , " --preserve-environment --command \" setsid " , NULL ) ;
} else {
final_command = yon_char_unite ( " xhost +SI:localuser: " , user , " ; " , final_command , " --login " , user , " --command \" setsid env DISPLAY=$DISPLAY WAYLAND_DISPLAY=$WAYLAND_DISPLAY XAUTHORITY=$XAUTHORITY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS XDG_SESSION_TYPE=$XDG_SESSION_TYPE " , NULL ) ;
}
if ( strstr ( target , " . " ) ) {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , " xdg-open " , target , " \" " , NULL ) ;
} else {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , target , " \" " , NULL ) ;
}
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) ) {
final_command = yon_char_unite ( final_command , " ; sleep 10 && xhost -SI:localuser: " , user , NULL ) ;
}
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithUserSudoCheck ) ) ) {
final_command = yon_char_unite ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) ) ? yon_char_unite ( terminal_exec , " " , ! strstr ( target , " . " ) ? terminal_hold : " " , " " , terminal_exec_arg , " " , NULL ) : " " , " sudo " , NULL ) ;
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) = = 0 ) { //root
final_command = yon_char_unite ( final_command , " --preserve-env setsid " , NULL ) ;
} else {
final_command = yon_char_unite ( " xhost +SI:localuser: " , user , " ; " , final_command , " --user " , user , " setsid env DISPLAY=$DISPLAY WAYLAND_DISPLAY=$WAYLAND_DISPLAY XAUTHORITY=$XAUTHORITY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS XDG_SESSION_TYPE=$XDG_SESSION_TYPE " , NULL ) ;
}
if ( strstr ( target , " . " ) ) {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , " xdg-open ' " , target , " ' " , NULL ) ;
} else {
final_command = yon_char_unite ( final_command , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " ' " ) : " ' " , target , " ' " , NULL ) ;
}
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) ) ) {
final_command = yon_char_unite ( final_command , " ; sleep 10 && xhost -SI:localuser: " , user , NULL ) ;
}
}
} else {
if ( strstr ( target , " . " ) ) {
final_command = yon_char_unite ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) ) ? yon_char_unite ( terminal_exec , " " , ! strstr ( target , " . " ) ? terminal_hold : " " , ! strstr ( target , " . " ) ? " " : " " , terminal_exec_arg , " " , NULL ) : " " , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , " setsid xdg-open " , target , NULL ) ;
} else {
final_command = yon_char_unite ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > runWithTerminalCheck ) ) ? yon_char_unite ( terminal_exec , " " , ! strstr ( target , " . " ) ? terminal_hold : " " , ! strstr ( target , " . " ) ? " " : " " , terminal_exec_arg , " " , NULL ) : " " , gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > priorityCheck ) ) ? yon_char_append ( priority , " " ) : " " , target , NULL ) ;
}
}
gtk_entry_set_text ( GTK_ENTRY ( widgets - > commandEntry ) , final_command ) ;
free ( final_command ) ;
}
}
void on_command_run ( GtkWidget * self , main_window * widgets ) {
const char * command = gtk_entry_get_text ( GTK_ENTRY ( widgets - > commandEntry ) ) ;
yon_launch_thread ( ( char * ) command ) ;
}
// standard functions
// standard functions
void config_init ( ) {
void config_init ( ) {
@ -160,6 +271,10 @@ main_window *setup_window(){
widgets - > chooseFileButton = yon_gtk_builder_get_widget ( builder , " chooseFileButton " ) ;
widgets - > chooseFileButton = yon_gtk_builder_get_widget ( builder , " chooseFileButton " ) ;
widgets - > chooseDesktopButton = yon_gtk_builder_get_widget ( builder , " chooseDesktopButton " ) ;
widgets - > chooseDesktopButton = yon_gtk_builder_get_widget ( builder , " chooseDesktopButton " ) ;
widgets - > StatusBox = yon_gtk_builder_get_widget ( builder , " mainStatusBox " ) ;
widgets - > StatusIcon = yon_gtk_builder_get_widget ( builder , " mainStatusIcon " ) ;
widgets - > StatusLabel = yon_gtk_builder_get_widget ( builder , " mainStatusLabel " ) ;
widgets - > runWithTerminalCheck = yon_gtk_builder_get_widget ( builder , " runWithTerminalCheck " ) ;
widgets - > runWithTerminalCheck = yon_gtk_builder_get_widget ( builder , " runWithTerminalCheck " ) ;
widgets - > runWithTerminalCombo = yon_gtk_builder_get_widget ( builder , " runWithTerminalCombo " ) ;
widgets - > runWithTerminalCombo = yon_gtk_builder_get_widget ( builder , " runWithTerminalCombo " ) ;
@ -209,15 +324,59 @@ main_window *setup_window(){
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserSuCheck ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserSuCheck ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserSudoCheck ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserSudoCheck ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserCombo ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithUserCombo ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( on_user_switching ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithTerminalCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithTerminalCombo ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithTerminalCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > runWithTerminalCombo ) ;
g_signal_connect ( G_OBJECT ( widgets - > commandCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > commandEntry ) ;
g_signal_connect ( G_OBJECT ( widgets - > commandCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > commandEntry ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCombo ) , " changed " , G_CALLBACK ( on_user_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserSuCheck ) , " toggled " , G_CALLBACK ( on_su_sudo_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserSudoCheck ) , " toggled " , G_CALLBACK ( on_su_sudo_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( on_user_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > TargetNameEntry ) , " changed " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithTerminalCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithTerminalCombo ) , " changed " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserPkexecCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserSuCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserSudoCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runWithUserCombo ) , " changed " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > priorityCheck ) , " toggled " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > priorityScale ) , " value-changed " , G_CALLBACK ( on_setup_command ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > runButton ) , " clicked " , G_CALLBACK ( on_command_run ) , widgets ) ;
int size ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithUserCombo ) , " root " ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > runWithUserCombo ) , 0 ) ;
main_config . user_id_min = atoi ( yon_config_load ( get_user_id_min_command , & size ) [ 0 ] ) ;
main_config . user_id_max = atoi ( yon_config_load ( get_user_id_max_command , & size ) [ 0 ] ) ;
config_str users = yon_config_load ( get_users_command , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
users [ i ] = yon_char_divide_search ( users [ i ] , " \n " , - 1 ) ;
if ( strstr ( users [ i ] , " : " ) & & atoi ( strstr ( users [ i ] , " : " ) + 1 ) > = main_config . user_id_min & & atoi ( strstr ( users [ i ] , " : " ) + 1 ) < = main_config . user_id_max )
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithUserCombo ) , yon_char_divide_search ( users [ i ] , " : " , - 1 ) ) ;
}
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithUserCombo ) , ) ;
config_str terminals = yon_config_load ( get_terminals_info_command , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
int parsed_size ;
terminals [ i ] = yon_char_divide_search ( terminals [ i ] , " \n " , - 1 ) ;
config_str terminal_parsed = yon_char_parse ( terminals [ i ] , & parsed_size , " : " ) ;
if ( ! access ( terminal_parsed [ 1 ] , F_OK ) ) {
terminal_info * term = g_malloc0 ( sizeof ( terminal_info ) ) ;
term - > name = terminal_parsed [ 0 ] ;
term - > exec_file = terminal_parsed [ 1 ] ;
term - > hold = terminal_parsed [ 2 ] ;
term - > exec_arg = terminal_parsed [ 3 ] ;
yon_dictionary_add_or_create_if_exists_with_data ( main_config . terminals , term - > name , term ) ;
gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT ( widgets - > runWithTerminalCombo ) , term - > name ) ;
}
}
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > runWithTerminalCombo ) , 0 ) ;
gtk_widget_show ( widgets - > Window ) ;
gtk_widget_show ( widgets - > Window ) ;
return widgets ;
return widgets ;
}
}
@ -300,7 +459,9 @@ int main(int argc, char *argv[]){
main_window * widgets = setup_window ( ) ;
main_window * widgets = setup_window ( ) ;
yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) ;
yon_ubl_header_setup_resource ( widgets - > HeadOverlay , widgets - > HeadBox , widgets - > HeadImage , banner_path ) ;
yon_ubl_header_setup_resource ( widgets - > HeadOverlay , widgets - > HeadBox , widgets - > HeadImage , banner_path ) ;
yon_ubl_status_box_render ( CHOOSE_APP_OR_FILE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_window_config_setup ( GTK_WINDOW ( widgets - > Window ) ) ;
yon_window_config_setup ( GTK_WINDOW ( widgets - > Window ) ) ;
yon_window_config_load ( config_path ) ;
yon_window_config_load ( config_path ) ;
GtkCssProvider * css = gtk_css_provider_new ( ) ;
GtkCssProvider * css = gtk_css_provider_new ( ) ;