feat(modules): extract all ui components into independend modules

This commit is contained in:
Valentin Uveges 2023-08-06 20:51:23 +03:00
parent a436f766cb
commit 56a447094a
14 changed files with 274 additions and 200 deletions

View file

@ -40,6 +40,7 @@ load_modules() {
local modules_array
read -a modules_array <<< "$modules_list"
local module_index=0;
local module_name
for module_name in ${modules_array[@]}
do
@ -48,7 +49,8 @@ load_modules() {
if [[ 0 -eq $? ]]
then
loaded_modules=$loaded_modules$( show_$module_name )
loaded_modules="$loaded_modules$( show_$module_name $module_index )"
module_index=$module_index+1
fi
done
@ -90,150 +92,30 @@ main() {
# --------=== Statusline
# NOTE: Checking for the value of @catppuccin_window_tabs_enabled
local wt_enabled
wt_enabled="$(get_tmux_option "@catppuccin_window_tabs_enabled" "off")"
readonly wt_enabled
local pill_theme_enabled
pill_theme_enabled="$(get_tmux_option "@catppuccin_pill_theme_enabled" "off")"
readonly pill_theme_enabled
local powerline_theme_enabled
powerline_theme_enabled="$(get_tmux_option "@catppuccin_powerline_theme_enabled" "off")"
readonly powerline_theme_enabled
local window_left_separator="$(get_tmux_option "@catppuccin_window_left_separator" "█")"
local window_right_separator="$(get_tmux_option "@catppuccin_window_right_separator" "█")"
local window_middle_separator="$(get_tmux_option "@catppuccin_window_middle_separator" "█")"
local window_color_fill="$(get_tmux_option "@catppuccin_window_color_fill" "number")"
local window_icon_position="$(get_tmux_option "@catppuccin_window_icon_position" "right")"
local powerline_icons_theme_enabled
powerline_icons_theme_enabled="$(get_tmux_option "@catppuccin_powerline_icons_theme_enabled" "off")"
readonly powerline_icons_theme_enabled
local window_module="$(get_tmux_option "@catppuccin_window_module" "directory_in_window")"
local window_current_module="$(get_tmux_option "@catppuccin_window_current_module" "directory_in_window_current")"
local no_patched_fonts_theme_enabled
no_patched_fonts_theme_enabled="$(get_tmux_option "@catppuccin_no_patched_fonts_theme_enabled" "off")"
readonly no_patched_fonts_theme_enabled
# Separators for the left status / window list
local l_left_separator
l_left_separator="$(get_tmux_option "@catppuccin_l_left_separator" "")"
readonly l_left_separator
local window_format=$( load_modules "$PLUGIN_DIR/window" "$window_module")
local window_current_format=$( load_modules "$PLUGIN_DIR/window" "$window_current_module")
local l_right_separator
l_right_separator="$(get_tmux_option "@catppuccin_l_right_separator" "")"
readonly l_right_separator
setw window-status-format "${window_format}"
setw window-status-current-format "${window_current_format}"
# Separators for the right status
local r_left_separator
r_left_separator="$(get_tmux_option "@catppuccin_r_left_separator" "")"
readonly r_left_separator
local status_left_separator="$(get_tmux_option "@catppuccin_status_left_separator" " ")"
local status_right_separator="$(get_tmux_option "@catppuccin_status_right_separator" "█")"
local status_connect_separator="$(get_tmux_option "@catppuccin_status_connect_separator" "yes")"
local r_right_separator
r_right_separator="$(get_tmux_option "@catppuccin_r_right_separator" "")"
readonly r_right_separator
local user
user="$(get_tmux_option "@catppuccin_user" "off")"
readonly user
local host
host="$(get_tmux_option "@catppuccin_host" "off")"
readonly host
local date_time
date_time="$(get_tmux_option "@catppuccin_date_time" "off")"
readonly date_time
# Icons
local directory_icon
directory_icon="$(get_tmux_option "@catppuccin_directory_icon" "")"
readonly directory_icon
local window_icon
window_icon="$(get_tmux_option "@catppuccin_window_icon" "")"
readonly window_icon
local session_icon
session_icon="$(get_tmux_option "@catppuccin_session_icon" "")"
readonly session_icon
local user_icon
user_icon="$(get_tmux_option "@catppuccin_user_icon" "")"
readonly user_icon
local host_icon
host_icon="$(get_tmux_option "@catppuccin_host_icon" "󰒋")"
readonly host_icon
local datetime_icon
datetime_icon="$(get_tmux_option "@catppuccin_datetime_icon" "")"
readonly datetime_icon
# Source status line themes
if [[ "${pill_theme_enabled}" == "off" ]] &&
[[ "${powerline_theme_enabled}" == "off" ]] &&
[[ "${powerline_icons_theme_enabled}" == "off" ]] &&
[[ "${no_patched_fonts_theme_enabled}" == "off" ]]; then
source "$PLUGIN_DIR/$DEFAULT_STATUS_LINE_FILE"
fi
if [[ "${pill_theme_enabled}" == "on" ]]; then
source "$PLUGIN_DIR/$PILL_STATUS_LINE_FILE"
fi
if [[ "${powerline_theme_enabled}" == "on" ]]; then
source "$PLUGIN_DIR/$POWERLINE_STATUS_LINE_FILE"
fi
if [[ "${powerline_icons_theme_enabled}" == "on" ]]; then
source "$PLUGIN_DIR/$POWERLINE_ICONS_STATUS_LINE_FILE"
fi
if [[ "${no_patched_fonts_theme_enabled}" == "on" ]]; then
source "$PLUGIN_DIR/$NO_PATCHED_FONTS_STATUS_LINE_FILE"
fi
# Right column 1 by default shows the Window name.
local right_column1=$show_window
# Right column 2 by default shows the current Session name.
local right_column2=$show_session
# Window status by default shows the current directory basename.
local window_status_format=$show_directory_in_window_status
local window_status_current_format=$show_directory_in_window_status_current
# NOTE: With the @catppuccin_window_tabs_enabled set to on, we're going to
# update the right_column1 and the window_status_* variables.
if [[ "${wt_enabled}" == "on" ]]; then
right_column1=$show_directory
window_status_format=$show_window_in_window_status
window_status_current_format=$show_window_in_window_status_current
fi
if [[ "${user}" == "on" ]]; then
right_column2="$right_column2$show_user"
fi
if [[ "${host}" == "on" ]]; then
right_column2="$right_column2$show_host"
fi
if [[ "${date_time}" != "off" ]]; then
right_column2="$right_column2$show_date_time"
fi
local status_modules="$(get_tmux_option "@catppuccin_status_modules" "application session")"
local loaded_modules=$( load_modules "$PLUGIN_DIR/status" "$status_modules")
set status-left ""
local status_left_separator=$r_left_separator
local status_right_separator=$l_right_separator
local status_modules="$(get_tmux_option "@catppuccin_status_modules" "")"
local loaded_modules=$( load_modules "$PLUGIN_DIR/modules" "$status_modules")
set status-right "${right_column1}${right_column2}${loaded_modules}"
setw window-status-format "${window_status_format}"
setw window-status-current-format "${window_status_current_format}"
set status-right "${loaded_modules}"
# --------=== Modes
#