diff --git a/builder/window_builder.sh b/builder/window_builder.sh index 735b99c..186b169 100644 --- a/builder/window_builder.sh +++ b/builder/window_builder.sh @@ -1,8 +1,5 @@ #!/bin/sh - -show_window_status= - build_window_format() { local number="$1" local color="$2" @@ -96,56 +93,34 @@ build_window_format() { } build_window_icon() { - # Only update `show_window_status` if it's not empty - # this module is ran twice once for current and once for default - # meaning 2 calls to build_window_icon wich will/should both return the same - # result. - if [ -z "$show_window_status" ]; then - local window_status_icon_enable custom_icon_window_last \ - custom_icon_window_zoom custom_icon_window_mark custom_icon_window_mark \ - custom_icon_window_silent custom_icon_window_activity custom_icon_window_bell + local window_status_icon_enable custom_icon_window_last \ + custom_icon_window_zoom custom_icon_window_mark custom_icon_window_mark \ + custom_icon_window_silent custom_icon_window_activity custom_icon_window_bell - # shellcheck disable=SC2034 - local tmux_batch_options_commands=() - # shellcheck disable=SC2034 - local tmux_batch_options=() + window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") + custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") + custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") + custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") + custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") + custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") + custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") + custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") - add_tmux_batch_option "@catppuccin_window_status_icon_enable" - add_tmux_batch_option "@catppuccin_icon_window_last" - add_tmux_batch_option "@catppuccin_icon_window_current" - add_tmux_batch_option "@catppuccin_icon_window_zoom" - add_tmux_batch_option "@catppuccin_icon_window_mark" - add_tmux_batch_option "@catppuccin_icon_window_silent" - add_tmux_batch_option "@catppuccin_icon_window_activity" - add_tmux_batch_option "@catppuccin_icon_window_bell" + if [ "$window_status_icon_enable" = "yes" ]; then + # #!~[*-]MZ + local show_window_status="" + show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" + show_window_status+="#{?window_bell_flag, ${custom_icon_window_bell},}" + show_window_status+="#{?window_silence_flag, ${custom_icon_window_silent},}" + show_window_status+="#{?window_active, ${custom_icon_window_current},}" + show_window_status+="#{?window_last_flag, ${custom_icon_window_last},}" + show_window_status+="#{?window_marked_flag, ${custom_icon_window_mark},}" + show_window_status+="#{?window_zoomed_flag, ${custom_icon_window_zoom},}" - run_tmux_batch_commands + fi - window_status_icon_enable=$(get_tmux_batch_option "@catppuccin_window_status_icon_enable" "yes") - custom_icon_window_last=$(get_tmux_batch_option "@catppuccin_icon_window_last" "󰖰") - custom_icon_window_current=$(get_tmux_batch_option "@catppuccin_icon_window_current" "󰖯") - custom_icon_window_zoom=$(get_tmux_batch_option "@catppuccin_icon_window_zoom" "󰁌") - custom_icon_window_mark=$(get_tmux_batch_option "@catppuccin_icon_window_mark" "󰃀") - custom_icon_window_silent=$(get_tmux_batch_option "@catppuccin_icon_window_silent" "󰂛") - custom_icon_window_activity=$(get_tmux_batch_option "@catppuccin_icon_window_activity" "󱅫") - custom_icon_window_bell=$(get_tmux_batch_option "@catppuccin_icon_window_bell" "󰂞") - - if [ "$window_status_icon_enable" = "yes" ]; then - # #!~[*-]MZ - show_window_status="" - show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" - show_window_status+="#{?window_bell_flag, ${custom_icon_window_bell},}" - show_window_status+="#{?window_silence_flag, ${custom_icon_window_silent},}" - show_window_status+="#{?window_active, ${custom_icon_window_current},}" - show_window_status+="#{?window_last_flag, ${custom_icon_window_last},}" - show_window_status+="#{?window_marked_flag, ${custom_icon_window_mark},}" - show_window_status+="#{?window_zoomed_flag, ${custom_icon_window_zoom},}" - - fi - - if [ "$window_status_icon_enable" = "no" ]; then - show_window_status=" #F" - fi + if [ "$window_status_icon_enable" = "no" ]; then + local show_window_status=" #F" fi echo "$show_window_status" diff --git a/catppuccin.tmux b/catppuccin.tmux index cce7c73..5771b8e 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -21,19 +21,9 @@ main() { # Aggregate all commands in one array local tmux_commands=() - # Aggregate all tmux option for tmux_batch_option - local tmux_batch_options_commands=() - local tmux_batch_options=() - - # Batch options for loading the colorscheme and everyting before - add_tmux_batch_option "@catppuccin_custom_plugin_dir" - add_tmux_batch_option "@catppuccin_flavour" - - run_tmux_batch_commands - # module directories local custom_path modules_custom_path modules_status_path modules_window_path modules_pane_path - custom_path="$(get_tmux_batch_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" + custom_path="$(get_tmux_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" modules_custom_path=$custom_path modules_status_path=$PLUGIN_DIR/status modules_window_path=$PLUGIN_DIR/window @@ -44,7 +34,7 @@ main() { local color_interpolation=() local color_values=() local temp - theme="$(get_tmux_batch_option "@catppuccin_flavour" "mocha")" + theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" # NOTE: Pulling in the selected theme by the theme that's being set as local # variables. # https://github.com/dylanaraps/pure-sh-bible#parsing-a-keyval-file @@ -65,44 +55,16 @@ main() { color_values+=("${temp}") done <"${PLUGIN_DIR}/themes/catppuccin_${theme}.tmuxtheme" - # Batch options for `./catppuccin.tmux` - add_tmux_batch_option "@catppuccin_status_default" - add_tmux_batch_option "@catppuccin_status_justify" - add_tmux_batch_option "@catppuccin_status_background" - add_tmux_batch_option "@catppuccin_menu_style" - add_tmux_batch_option "@catppuccin_menu_selected_style" - add_tmux_batch_option "@catppuccin_menu_border_style" - add_tmux_batch_option "@catppuccin_pane_status_enabled" - add_tmux_batch_option "@catppuccin_pane_border_status" - add_tmux_batch_option "@catppuccin_pane_left_separator" - add_tmux_batch_option "@catppuccin_pane_middle_separator" - add_tmux_batch_option "@catppuccin_pane_right_separator" - add_tmux_batch_option "@catppuccin_pane_number_position" - add_tmux_batch_option "@catppuccin_window_separator" - add_tmux_batch_option "@catppuccin_window_left_separator" - add_tmux_batch_option "@catppuccin_window_right_separator" - add_tmux_batch_option "@catppuccin_window_middle_separator" - add_tmux_batch_option "@catppuccin_window_number_position" - add_tmux_batch_option "@catppuccin_window_status_enable" - add_tmux_batch_option "@catppuccin_status_left_separator" - add_tmux_batch_option "@catppuccin_status_right_separator" - add_tmux_batch_option "@catppuccin_status_connect_separator" - add_tmux_batch_option "@catppuccin_status_fill" - add_tmux_batch_option "@catppuccin_status_modules_left" - add_tmux_batch_option "@catppuccin_status_modules_right" - - run_tmux_batch_commands - # status general local status_default status_justify status_background message_background - status_default=$(get_tmux_batch_option "@catppuccin_status_default" "on") + status_default=$(get_tmux_option "@catppuccin_status_default" "on") # shellcheck disable=SC2121 set status "$status_default" - status_justify=$(get_tmux_batch_option "@catppuccin_status_justify" "left") + status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") set status-justify "$status_justify" - status_background=$(get_tmux_batch_option "@catppuccin_status_background" "theme") + status_background=$(get_tmux_option "@catppuccin_status_background" "theme") if [ "${status_background}" = "theme" ]; then set status-bg "${thm_bg}" message_background="${thm_gray}" @@ -125,9 +87,9 @@ main() { # menu local menu_style menu_selected_style menu_border_style - menu_style=$(get_interpolated_tmux_batch_option "@catppuccin_menu_style" "default") - menu_selected_style=$(get_interpolated_tmux_batch_option "@catppuccin_menu_selected_style" "fg=${thm_gray},bg=${thm_yellow}") - menu_border_style=$(get_interpolated_tmux_batch_option "@catppuccin_menu_border_style" "default") + menu_style=$(get_interpolated_tmux_option "@catppuccin_menu_style" "default") + menu_selected_style=$(get_interpolated_tmux_option "@catppuccin_menu_selected_style" "fg=${thm_gray},bg=${thm_yellow}") + menu_border_style=$(get_interpolated_tmux_option "@catppuccin_menu_border_style" "default") set menu-style "$menu_style" set menu-selected-style "$menu_selected_style" set menu-border-style "$menu_border_style" @@ -136,19 +98,19 @@ main() { local pane_border_status pane_border_style \ pane_active_border_style pane_left_separator pane_middle_separator \ pane_right_separator pane_number_position pane_format - pane_status_enable=$(get_tmux_batch_option "@catppuccin_pane_status_enabled" "no") # yes - pane_border_status=$(get_tmux_batch_option "@catppuccin_pane_border_status" "off") # bottom + pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes + pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom pane_border_style=$( - get_interpolated_tmux_batch_option "@catppuccin_pane_border_style" "fg=${thm_gray}" + get_interpolated_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}" ) pane_active_border_style=$( - get_interpolated_tmux_batch_option "@catppuccin_pane_active_border_style" \ + get_interpolated_tmux_option "@catppuccin_pane_active_border_style" \ "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" ) - pane_left_separator=$(get_tmux_batch_option "@catppuccin_pane_left_separator" "█") - pane_middle_separator=$(get_tmux_batch_option "@catppuccin_pane_middle_separator" "█") - pane_right_separator=$(get_tmux_batch_option "@catppuccin_pane_right_separator" "█") - pane_number_position=$(get_tmux_batch_option "@catppuccin_pane_number_position" "left") # right, left + pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") + pane_middle_separator=$(get_tmux_option "@catppuccin_pane_middle_separator" "█") + pane_right_separator=$(get_tmux_option "@catppuccin_pane_right_separator" "█") + pane_number_position=$(get_tmux_option "@catppuccin_pane_number_position" "left") # right, left pane_format=$(load_modules "pane_default_format" "$modules_custom_path" "$modules_pane_path") setw pane-border-status "$pane_border_status" @@ -161,14 +123,14 @@ main() { window_middle_separator window_number_position window_status_enable \ window_format window_current_format - window_status_separator=$(get_interpolated_tmux_batch_option "@catppuccin_window_separator" "") + window_status_separator=$(get_interpolated_tmux_option "@catppuccin_window_separator" "") setw window-status-separator "$window_status_separator" - window_left_separator=$(get_tmux_batch_option "@catppuccin_window_left_separator" "█") - window_right_separator=$(get_tmux_batch_option "@catppuccin_window_right_separator" "█") - window_middle_separator=$(get_tmux_batch_option "@catppuccin_window_middle_separator" "█ ") - window_number_position=$(get_tmux_batch_option "@catppuccin_window_number_position" "left") # right, left - window_status_enable=$(get_tmux_batch_option "@catppuccin_window_status_enable" "no") # right, left + window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") + window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█") + window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ") + window_number_position=$(get_tmux_option "@catppuccin_window_number_position" "left") # right, left + window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") setw window-status-format "$(do_color_interpolation "$window_format")" @@ -179,16 +141,16 @@ main() { # status module local status_left_separator status_right_separator status_connect_separator \ status_fill status_modules_left status_modules_right - status_left_separator=$(get_tmux_batch_option "@catppuccin_status_left_separator" "") - status_right_separator=$(get_tmux_batch_option "@catppuccin_status_right_separator" "█") - status_connect_separator=$(get_tmux_batch_option "@catppuccin_status_connect_separator" "yes") - status_fill=$(get_tmux_batch_option "@catppuccin_status_fill" "icon") + status_left_separator=$(get_tmux_option "@catppuccin_status_left_separator" "") + status_right_separator=$(get_tmux_option "@catppuccin_status_right_separator" "█") + status_connect_separator=$(get_tmux_option "@catppuccin_status_connect_separator" "yes") + status_fill=$(get_tmux_option "@catppuccin_status_fill" "icon") - status_modules_left=$(get_tmux_batch_option "@catppuccin_status_modules_left" "") + status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "") loaded_modules_left=$(load_modules "$status_modules_left" "$modules_custom_path" "$modules_status_path") set status-left "$(do_color_interpolation "$loaded_modules_left")" - status_modules_right=$(get_tmux_batch_option "@catppuccin_status_modules_right" "application session") + status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") set status-right "$(do_color_interpolation "$loaded_modules_right")" diff --git a/pane/pane_default_format.sh b/pane/pane_default_format.sh index a271b66..53ef75b 100644 --- a/pane/pane_default_format.sh +++ b/pane/pane_default_format.sh @@ -1,22 +1,11 @@ show_pane_default_format() { local number color background text fill - # shellcheck disable=SC2034 - local tmux_batch_options_commands=() - # shellcheck disable=SC2034 - local tmux_batch_options=() - - add_tmux_batch_option "@catppuccin_pane_color" - add_tmux_batch_option "@catppuccin_pane_background_color" - add_tmux_batch_option "@catppuccin_pane_default_text" - add_tmux_batch_option "@catppuccin_pane_default_fill" - - run_tmux_batch_commands number="#{pane_index}" - color="$(get_tmux_batch_option "@catppuccin_pane_color" "$thm_green")" - background="$(get_tmux_batch_option "@catppuccin_pane_background_color" "$thm_gray")" - text="$(get_tmux_batch_option "@catppuccin_pane_default_text" "#{b:pane_current_path}")" - fill="$(get_tmux_batch_option "@catppuccin_pane_default_fill" "number")" # number, all, none + color="$(get_tmux_option "@catppuccin_pane_color" "$thm_green")" + background="$(get_tmux_option "@catppuccin_pane_background_color" "$thm_gray")" + text="$(get_tmux_option "@catppuccin_pane_default_text" "#{b:pane_current_path}")" + fill="$(get_tmux_option "@catppuccin_pane_default_fill" "number")" # number, all, none default_pane_format=$(build_pane_format "$number" "$color" "$background" "$text" "$fill") diff --git a/status/application.sh b/status/application.sh index 5ce9b8e..fa2bbbc 100644 --- a/status/application.sh +++ b/status/application.sh @@ -1,13 +1,10 @@ show_application() { local index icon color text module - tmux_batch_setup_status_module "application" - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_application_icon" "") - color=$(get_tmux_batch_option "@catppuccin_application_color" "$thm_pink") - text=$(get_tmux_batch_option "@catppuccin_application_text" "#{pane_current_command}") + icon=$(get_tmux_option "@catppuccin_application_icon" "") + color=$(get_tmux_option "@catppuccin_application_color" "$thm_pink") + text=$(get_tmux_option "@catppuccin_application_text" "#{pane_current_command}") module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/battery.sh b/status/battery.sh index 1f3ec56..5a2d8f0 100644 --- a/status/battery.sh +++ b/status/battery.sh @@ -1,28 +1,24 @@ show_battery() { local index icon color text module - tmux_batch_setup_status_module "battery" - - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier8 󰁹 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier7 󰂁 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier6 󰁿 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier5 󰁾 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier4 󰁽 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier3 󰁼 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier2 󰁻 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_charge_tier1 󰁺 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_status_charged 󰚥 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_status_charging 󰂄 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_status_discharging 󰂃 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_status_unknown 󰂑 ;") - tmux_batch_options_commands+=("set-option -gq @batt_icon_status_attached 󱈑 ;") - - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_battery_icon" "#{battery_icon}") - color=$(get_tmux_batch_option "@catppuccin_battery_color" "$thm_yellow") - text=$(get_tmux_batch_option "@catppuccin_battery_text" "#{battery_percentage}") + icon=$(get_tmux_option "@catppuccin_battery_icon" "#{battery_icon}") + color=$(get_tmux_option "@catppuccin_battery_color" "$thm_yellow") + text=$(get_tmux_option "@catppuccin_battery_text" "#{battery_percentage}") + + tmux set-option -g @batt_icon_charge_tier8 '󰁹' + tmux set-option -g @batt_icon_charge_tier7 '󰂁' + tmux set-option -g @batt_icon_charge_tier6 '󰁿' + tmux set-option -g @batt_icon_charge_tier5 '󰁾' + tmux set-option -g @batt_icon_charge_tier4 '󰁽' + tmux set-option -g @batt_icon_charge_tier3 '󰁼' + tmux set-option -g @batt_icon_charge_tier2 '󰁻' + tmux set-option -g @batt_icon_charge_tier1 '󰁺' + tmux set-option -g @batt_icon_status_charged '󰚥' + tmux set-option -g @batt_icon_status_charging '󰂄' + tmux set-option -g @batt_icon_status_discharging '󰂃' + tmux set-option -g @batt_icon_status_unknown '󰂑' + tmux set-option -g @batt_icon_status_attached "󱈑" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/clima.sh b/status/clima.sh index 6f54c2a..7e1801b 100644 --- a/status/clima.sh +++ b/status/clima.sh @@ -2,13 +2,10 @@ show_clima() { local index icon color text module - tmux_batch_setup_status_module "clima" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_clima_icon" "")" - color="$(get_tmux_batch_option "@catppuccin_clima_color" "$thm_yellow")" - text="$(get_tmux_batch_option "@catppuccin_clima_text" "#{clima}")" + icon="$(get_tmux_option "@catppuccin_clima_icon" "")" + color="$(get_tmux_option "@catppuccin_clima_color" "$thm_yellow")" + text="$(get_tmux_option "@catppuccin_clima_text" "#{clima}")" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/cpu.sh b/status/cpu.sh index 7b9e019..fd12951 100644 --- a/status/cpu.sh +++ b/status/cpu.sh @@ -1,18 +1,14 @@ show_cpu() { local index icon color text module - tmux_batch_setup_status_module "cpu" - - tmux_batch_options_commands+=("set-option -gq @cpu_low_bg_color $thm_yellow ;") # background color when cpu is low - tmux_batch_options_commands+=("set-option -gq @cpu_medium_bg_color $thm_orange ;") # background color when cpu is medium - tmux_batch_options_commands+=("set-option -gq @cpu_high_bg_color $thm_red ;") # background color when cpu is high - - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_cpu_icon" "") - color="$(get_tmux_batch_option "@catppuccin_cpu_color" "#{cpu_bg_color}")" - text="$(get_tmux_batch_option "@catppuccin_cpu_text" "#{cpu_percentage}")" + icon=$(get_tmux_option "@catppuccin_cpu_icon" "") + color="$(get_tmux_option "@catppuccin_cpu_color" "#{cpu_bg_color}")" + text="$(get_tmux_option "@catppuccin_cpu_text" "#{cpu_percentage}")" + + tmux set-option -g @cpu_low_bg_color "$thm_yellow" # background color when cpu is low + tmux set-option -g @cpu_medium_bg_color "$thm_orange" # background color when cpu is medium + tmux set-option -g @cpu_high_bg_color "$thm_red" # background color when cpu is high module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/date_time.sh b/status/date_time.sh index cf8262b..04695b9 100644 --- a/status/date_time.sh +++ b/status/date_time.sh @@ -1,13 +1,10 @@ show_date_time() { local index icon color text module - tmux_batch_setup_status_module "date_time" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_date_time_icon" "󰃰")" - color="$(get_tmux_batch_option "@catppuccin_date_time_color" "$thm_blue")" - text="$(get_tmux_batch_option "@catppuccin_date_time_text" "%Y-%m-%d %H:%M")" + icon="$(get_tmux_option "@catppuccin_date_time_icon" "󰃰")" + color="$(get_tmux_option "@catppuccin_date_time_color" "$thm_blue")" + text="$(get_tmux_option "@catppuccin_date_time_text" "%Y-%m-%d %H:%M")" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/directory.sh b/status/directory.sh index f0d1476..8982dbe 100644 --- a/status/directory.sh +++ b/status/directory.sh @@ -1,13 +1,10 @@ show_directory() { local index icon color text module - tmux_batch_setup_status_module "directory" - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_directory_icon" "") - color=$(get_tmux_batch_option "@catppuccin_directory_color" "$thm_pink") - text=$(get_tmux_batch_option "@catppuccin_directory_text" "#{b:pane_current_path}") + icon=$(get_tmux_option "@catppuccin_directory_icon" "") + color=$(get_tmux_option "@catppuccin_directory_color" "$thm_pink") + text=$(get_tmux_option "@catppuccin_directory_text" "#{b:pane_current_path}") module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/gitmux.sh b/status/gitmux.sh index edebf5c..9186bc2 100644 --- a/status/gitmux.sh +++ b/status/gitmux.sh @@ -3,13 +3,10 @@ show_gitmux() { local index icon color text module - tmux_batch_setup_status_module "gitmux" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_gitmux_icon" "󰊢")" - color="$(get_tmux_batch_option "@catppuccin_gitmux_color" "$thm_green")" - text="$(get_tmux_batch_option "@catppuccin_gitmux_text" "#(gitmux \"#{pane_current_path}\")")" + icon="$(get_tmux_option "@catppuccin_gitmux_icon" "󰊢")" + color="$(get_tmux_option "@catppuccin_gitmux_color" "$thm_green")" + text="$(get_tmux_option "@catppuccin_gitmux_text" "#(gitmux \"#{pane_current_path}\")")" module=$( build_status_module "$index" "$icon" "$color" "$text" ) diff --git a/status/host.sh b/status/host.sh index ce2bd6d..8e4bd23 100644 --- a/status/host.sh +++ b/status/host.sh @@ -1,13 +1,10 @@ show_host() { local index icon color text module - tmux_batch_setup_status_module "host" - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_host_icon" "󰒋") - color=$(get_tmux_batch_option "@catppuccin_host_color" "$thm_magenta") - text=$(get_tmux_batch_option "@catppuccin_host_text" "#H") + icon=$(get_tmux_option "@catppuccin_host_icon" "󰒋") + color=$(get_tmux_option "@catppuccin_host_color" "$thm_magenta") + text=$(get_tmux_option "@catppuccin_host_text" "#H") module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/kube.sh b/status/kube.sh index 5e4d26d..4e3083c 100644 --- a/status/kube.sh +++ b/status/kube.sh @@ -3,22 +3,15 @@ show_kube() { local index icon color text context_color namespace_color symbol_enabled module - tmux_batch_setup_status_module "kube" - - add_tmux_batch_option "@catppuccin_kube_context_color" - add_tmux_batch_option "@catppuccin_kube_namespace_color" - - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_kube_icon" "󱃾") - color=$(get_tmux_batch_option "@catppuccin_kube_color" "$thm_blue") - context_color=$(get_tmux_batch_option "@catppuccin_kube_context_color" "#{thm_red}") - namespace_color=$(get_tmux_batch_option "@catppuccin_kube_namespace_color" "#{thm_cyan}") + icon=$(get_tmux_option "@catppuccin_kube_icon" "󱃾") + color=$(get_tmux_option "@catppuccin_kube_color" "$thm_blue") + context_color=$(get_tmux_option "@catppuccin_kube_context_color" "#{thm_red}") + namespace_color=$(get_tmux_option "@catppuccin_kube_namespace_color" "#{thm_cyan}") symbol_enabled=${KUBE_TMUX_SYMBOL_ENABLE:-false} - text=$(get_tmux_batch_option "@catppuccin_kube_text" "#(KUBE_TMUX_SYMBOL_ENABLE=$symbol_enabled ${TMUX_PLUGIN_MANAGER_PATH}kube-tmux/kube.tmux 250 '$context_color' '$namespace_color')") + text=$(get_tmux_option "@catppuccin_kube_text" "#(KUBE_TMUX_SYMBOL_ENABLE=$symbol_enabled ${TMUX_PLUGIN_MANAGER_PATH}kube-tmux/kube.tmux 250 '$context_color' '$namespace_color')") - module=$(build_status_module "$index" "$icon" "$color" "$text") + module=$( build_status_module "$index" "$icon" "$color" "$text" ) echo "$module" } diff --git a/status/load.sh b/status/load.sh index 6a87a47..5809423 100644 --- a/status/load.sh +++ b/status/load.sh @@ -1,13 +1,10 @@ show_load() { local index icon color text module - tmux_batch_setup_status_module "load" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_load_icon" "󰊚")" - color="$(get_tmux_batch_option "@catppuccin_load_color" "$thm_blue")" - text="$(get_tmux_batch_option "@catppuccin_load_text" "#{load_full}")" + icon="$(get_tmux_option "@catppuccin_load_icon" "󰊚")" + color="$(get_tmux_option "@catppuccin_load_color" "$thm_blue")" + text="$(get_tmux_option "@catppuccin_load_text" "#{load_full}")" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/pomodoro_plus.sh b/status/pomodoro_plus.sh index 48bcab7..a155cd7 100644 --- a/status/pomodoro_plus.sh +++ b/status/pomodoro_plus.sh @@ -3,13 +3,10 @@ show_pomodoro_plus() { local index icon color text module - tmux_batch_setup_status_module "pomodoro_plus" - run_tmux_batch_commands - index=$1 - icon="$( get_tmux_batch_option "@catppuccin_pomodoro_plus_icon" "" )" - color="$( get_tmux_batch_option "@catppuccin_pomodoro_plus_color" "$thm_orange" )" - text="$( get_tmux_batch_option "@catppuccin_pomodoro_plus_text" "#{pomodoro_status}" )" + icon="$( get_tmux_option "@catppuccin_pomodoro_plus_icon" "" )" + color="$( get_tmux_option "@catppuccin_pomodoro_plus_color" "$thm_orange" )" + text="$( get_tmux_option "@catppuccin_pomodoro_plus_text" "#{pomodoro_status}" )" module=$( build_status_module "$index" "$icon" "$color" "$text" ) diff --git a/status/session.sh b/status/session.sh index d7c3c19..6e79cfb 100644 --- a/status/session.sh +++ b/status/session.sh @@ -1,13 +1,10 @@ show_session() { local index icon color text module - tmux_batch_setup_status_module "session" - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_session_icon" "") - color=$(get_tmux_batch_option "@catppuccin_session_color" "#{?client_prefix,$thm_red,$thm_green}") - text=$(get_tmux_batch_option "@catppuccin_session_text" "#S") + icon=$(get_tmux_option "@catppuccin_session_icon" "") + color=$(get_tmux_option "@catppuccin_session_color" "#{?client_prefix,$thm_red,$thm_green}") + text=$(get_tmux_option "@catppuccin_session_text" "#S") module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/uptime.sh b/status/uptime.sh index 2b357be..10999de 100644 --- a/status/uptime.sh +++ b/status/uptime.sh @@ -1,13 +1,10 @@ show_uptime() { local index icon color text module - tmux_batch_setup_status_module "uptime" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_uptime_icon" "󰔟")" - color="$(get_tmux_batch_option "@catppuccin_uptime_color" "$thm_green")" - text="$(get_tmux_batch_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* user.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" + icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" + color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" + text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* user.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/user.sh b/status/user.sh index 217b44c..ea88e75 100644 --- a/status/user.sh +++ b/status/user.sh @@ -1,13 +1,10 @@ show_user() { local index icon color text module - tmux_batch_setup_status_module "user" - run_tmux_batch_commands - index=$1 - icon=$(get_tmux_batch_option "@catppuccin_user_icon" "") - color=$(get_tmux_batch_option "@catppuccin_user_color" "$thm_cyan") - text=$(get_tmux_batch_option "@catppuccin_user_text" "#(whoami)") + icon=$(get_tmux_option "@catppuccin_user_icon" "") + color=$(get_tmux_option "@catppuccin_user_color" "$thm_cyan") + text=$(get_tmux_option "@catppuccin_user_text" "#(whoami)") module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/status/weather.sh b/status/weather.sh index c6bfbc2..b6cb6fe 100644 --- a/status/weather.sh +++ b/status/weather.sh @@ -3,13 +3,10 @@ show_weather() { local index icon color text module - tmux_batch_setup_status_module "weather" - run_tmux_batch_commands - index=$1 - icon="$(get_tmux_batch_option "@catppuccin_weather_icon" "")" - color="$(get_tmux_batch_option "@catppuccin_weather_color" "$thm_yellow")" - text="$(get_tmux_batch_option "@catppuccin_weather_text" "#{weather}")" + icon="$(get_tmux_option "@catppuccin_weather_icon" "")" + color="$(get_tmux_option "@catppuccin_weather_color" "$thm_yellow")" + text="$(get_tmux_option "@catppuccin_weather_text" "#{weather}")" module=$(build_status_module "$index" "$icon" "$color" "$text") diff --git a/utils/tmux_utils.sh b/utils/tmux_utils.sh index 7aa3151..e43f61f 100644 --- a/utils/tmux_utils.sh +++ b/utils/tmux_utils.sh @@ -18,9 +18,11 @@ get_tmux_option() { if [ "$value" = "null" ] then echo "" + else echo "$value" fi + else echo "$default" @@ -38,9 +40,11 @@ get_interpolated_tmux_option() { if [ "$value" = "null" ] then echo "" + else do_color_interpolation "$value" fi + else echo "$default" fi @@ -57,95 +61,3 @@ setw() { local value=$2 tmux_commands+=(set-window-option -gq "$option" "$value" ";") } - -get_tmux_batch_option() { - local option default value - option="$1" - default="$2" - - for option_index in "${!tmux_batch_options[@]}"; do - IFS=":" read -r read_option read_value <<<"${tmux_batch_options[$option_index]}" - if [[ "$read_option" == "$option" ]]; then - echo "$read_value" - return - fi - done - - echo "$default" -} - -get_interpolated_tmux_batch_option() { - local option default value - option="$1" - default="$2" - - for option_index in "${!tmux_batch_options[@]}"; do - IFS=":" read -r read_option read_value <<<"${tmux_batch_options[$option_index]}" - if [[ "$read_option" == "$option" ]]; then - do_color_interpolation "$read_value" - return - fi - done - - echo "$default" -} - -add_tmux_batch_option() { - local option - option="$1" - - tmux_batch_options_commands+=("show-option -gq $option ;") -} - -set_tmux_batch_option() { - local option value - option="$1" - value="$2" - - # NOTE: don't check for duplicates just append - # for option_index in "${!tmux_batch_options[@]}"; do - # read -d ':' -r read_option <<<"${tmux_batch_options[$option_index]}" - # if [[ "$read_option" == "$option" ]]; then - # tmux_batch_options["$option_index"]="$option:$value" - # return - # fi - # done - - tmux_batch_options+=("$option:$value") -} - -run_tmux_batch_commands() { - local temp - - # shellcheck disable=SC2048,SC2086 - while IFS=' ' read -r option value; do - if [ -n "$value" ]; then - if [ "$value" = "null" ]; then - set_tmux_batch_option "$option" "" - else - temp="${value%\"}" - temp="${temp#\"}" - set_tmux_batch_option "$option" "$temp" - fi - fi - done < <(tmux ${tmux_batch_options_commands[*]}) - - tmux_batch_options_commands=() -} - -tmux_batch_setup_status_module() { - local name="$1" - - # Don't want to run commands set before since we can't update - # `tmux_batch_options` for it - # shellcheck disable=SC2034 - tmux_batch_options_commands=() - - # No need to check previous options - # shellcheck disable=SC2034 - tmux_batch_options=() - - add_tmux_batch_option "@catppuccin_${name}_icon" - add_tmux_batch_option "@catppuccin_${name}_color" - add_tmux_batch_option "@catppuccin_${name}_text" -} diff --git a/window/window_current_format.sh b/window/window_current_format.sh index 511d0c3..0a17bcf 100644 --- a/window/window_current_format.sh +++ b/window/window_current_format.sh @@ -1,22 +1,11 @@ show_window_current_format() { local number color background text fill current_window_format - # shellcheck disable=SC2034 - local tmux_batch_options_commands=() - # shellcheck disable=SC2034 - local tmux_batch_options=() - - add_tmux_batch_option "@catppuccin_window_current_color" - add_tmux_batch_option "@catppuccin_window_current_background" - add_tmux_batch_option "@catppuccin_window_current_text" - add_tmux_batch_option "@catppuccin_window_current_fill" - - run_tmux_batch_commands number="#I" - color=$(get_tmux_batch_option "@catppuccin_window_current_color" "$thm_orange") - background=$(get_tmux_batch_option "@catppuccin_window_current_background" "$thm_bg") - text="$(get_tmux_batch_option "@catppuccin_window_current_text" "#{b:pane_current_path}")" # use #W for application instead of directory - fill="$(get_tmux_batch_option "@catppuccin_window_current_fill" "number")" # number, all, none + color=$(get_tmux_option "@catppuccin_window_current_color" "$thm_orange") + background=$(get_tmux_option "@catppuccin_window_current_background" "$thm_bg") + text="$(get_tmux_option "@catppuccin_window_current_text" "#{b:pane_current_path}")" # use #W for application instead of directory + fill="$(get_tmux_option "@catppuccin_window_current_fill" "number")" # number, all, none current_window_format=$(build_window_format "$number" "$color" "$background" "$text" "$fill") diff --git a/window/window_default_format.sh b/window/window_default_format.sh index e426181..2c758ba 100644 --- a/window/window_default_format.sh +++ b/window/window_default_format.sh @@ -1,22 +1,11 @@ show_window_default_format() { local number color background text fill default_window_format - # shellcheck disable=SC2034 - local tmux_batch_options_commands=() - # shellcheck disable=SC2034 - local tmux_batch_options=() - - add_tmux_batch_option "@catppuccin_window_default_color" - add_tmux_batch_option "@catppuccin_window_default_background" - add_tmux_batch_option "@catppuccin_window_default_text" - add_tmux_batch_option "@catppuccin_window_default_fill" - - run_tmux_batch_commands number="#I" - color=$(get_tmux_batch_option "@catppuccin_window_default_color" "$thm_blue") - background=$(get_tmux_batch_option "@catppuccin_window_default_background" "$thm_gray") - text="$(get_tmux_batch_option "@catppuccin_window_default_text" "#{b:pane_current_path}")" # use #W for application instead of directory - fill="$(get_tmux_batch_option "@catppuccin_window_default_fill" "number")" # number, all, none + color=$(get_tmux_option "@catppuccin_window_default_color" "$thm_blue") + background=$(get_tmux_option "@catppuccin_window_default_background" "$thm_gray") + text="$(get_tmux_option "@catppuccin_window_default_text" "#{b:pane_current_path}")" # use #W for application instead of directory + fill="$(get_tmux_option "@catppuccin_window_default_fill" "number")" # number, all, none default_window_format=$(build_window_format "$number" "$color" "$background" "$text" "$fill")