From a436f766cb51e58e829ad23353cfdf2dc0da6360 Mon Sep 17 00:00:00 2001 From: Valentin Uveges Date: Sun, 6 Aug 2023 14:37:12 +0300 Subject: [PATCH] feat(modules): extract date_time module --- catppuccin.tmux | 36 +++++++++++++++++++++++++++++++++++- modules/date_time.sh | 14 ++++++++++++++ test_cat.sh | 30 ++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 modules/date_time.sh create mode 100755 test_cat.sh diff --git a/catppuccin.tmux b/catppuccin.tmux index df29d12..207aab4 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -31,6 +31,31 @@ setw() { tmux_commands+=(set-window-option -gq "$option" "$value" ";") } +load_modules() { + local loaded_modules + + local modules_path=$1 + local modules_list=$2 + + local modules_array + read -a modules_array <<< "$modules_list" + + local module_name + for module_name in ${modules_array[@]} + do + local module_path=$modules_path/$module_name.sh + source $module_path + + if [[ 0 -eq $? ]] + then + loaded_modules=$loaded_modules$( show_$module_name ) + fi + + done + + echo $loaded_modules +} + main() { local theme theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" @@ -196,7 +221,16 @@ main() { fi set status-left "" - set status-right "${right_column1}${right_column2}" + + + 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}" diff --git a/modules/date_time.sh b/modules/date_time.sh new file mode 100644 index 0000000..04c737f --- /dev/null +++ b/modules/date_time.sh @@ -0,0 +1,14 @@ +show_date_time() { + local date_time_icon="$(get_tmux_option "@catppuccin_datetime_icon" "󰃰")" + local date_time_format="$(get_tmux_option "@catppuccin_date_time_format" "%Y-%m-%d %H:%M")" + + local show_left_separator="#[fg=$thm_blue,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" + local show_date_time_icon="#[fg=$thm_bg,bg=$thm_blue,nobold,nounderscore,noitalics]$datetime_icon" + local show_date_time_text="#[fg=$thm_fg,bg=$thm_gray]$date_time_format" + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + + local show_date_time=$show_left_separator$show_date_time_icon" "$show_date_time_text$show_right_separator + + echo $show_date_time +} + diff --git a/test_cat.sh b/test_cat.sh new file mode 100755 index 0000000..ff16ce2 --- /dev/null +++ b/test_cat.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +load_modules() { + local loaded_modules + + local modules_path=$1 + local modules_list=$2 + + local modules_array + read -a modules_array <<< "$modules_list" + + local module_name + for module_name in ${modules_array[@]} + do + local module_path=$modules_path/$module_name.sh + source $module_path + + if [[ 0 -eq $? ]] + then + loaded_modules=$loaded_modules$( show_$module_name ) + fi + + done + + echo $loaded_modules +} + +module_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/modules +module_list="user host date_time" +echo $( load_modules "$module_path" "$module_list" )