Add config options

`@catppuccin_window_left_separator_inverse`
`@catppuccin_window_right_separator_inverse`
`@catppuccin_status_left_separator_inverse`
This commit is contained in:
ervinpopescu 2023-09-09 16:28:50 +03:00
parent 79230ddb54
commit bb129ad37a
No known key found for this signature in database

View file

@ -7,10 +7,8 @@ get_tmux_option() {
default="$2"
value=$(tmux show-option -gqv "$option")
if [ -n "$value" ]
then
if [ "$value" = "null" ]
then
if [ -n "$value" ]; then
if [ "$value" = "null" ]; then
echo ""
else
@ -46,14 +44,12 @@ build_window_icon() {
local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󰖲")
local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞")
if [ "$window_status_icon_enable" = "yes" ]
then
if [ "$window_status_icon_enable" = "yes" ]; then
# #!~[*-]MZ
local show_window_status="#{?window_activity_flag,${custom_icon_window_activity},}#{?window_bell_flag,${custom_icon_window_bell},}#{?window_silence_flag,${custom_icon_window_silent},}#{?window_active,${custom_icon_window_current},}#{?window_last_flag,${custom_icon_window_last},}#{?window_marked_flag,${custom_icon_window_mark},}#{?window_zoomed_flag,${custom_icon_window_zoom},}"
fi
if [ "$window_status_icon_enable" = "no" ]
then
if [ "$window_status_icon_enable" = "no" ]; then
local show_window_status="#F"
fi
@ -67,14 +63,12 @@ build_window_format() {
local text=$4
local fill=$5
if [ "$window_status_enable" = "yes" ]
then
local icon="$( build_window_icon )"
if [ "$window_status_enable" = "yes" ]; then
local icon="$(build_window_icon)"
text="$text $icon"
fi
if [ "$fill" = "none" ]
then
if [ "$fill" = "none" ]; then
local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator"
local show_number="#[fg=$thm_fg,bg=$thm_gray]$number"
local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$window_middle_separator"
@ -83,8 +77,7 @@ build_window_format() {
fi
if [ "$fill" = "all" ]
then
if [ "$fill" = "all" ]; then
local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator"
local show_number="#[fg=$background,bg=$color]$number"
local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator"
@ -93,35 +86,52 @@ build_window_format() {
fi
if [ "$fill" = "number" ]
then
if [ "$fill" = "number" ]; then
local show_number="#[fg=$background,bg=$color]$number"
local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator"
local show_text="#[fg=$thm_fg,bg=$background]$text"
if [ "$window_number_position" = "right" ]
then
if [ "$window_number_position" = "right" ]; then
local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator"
local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator"
fi
if [ "$window_number_position" = "left" ]
then
if [ "$window_number_position" = "left" ]; then
local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator"
local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator"
fi
fi
if [ "$window_left_separator_inverse" = "yes" ]; then
local show_left_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$window_left_separator"
fi
if [ "$window_right_separator_inverse" = "yes" ]; then
local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$window_right_separator"
fi
if [ $((index)) -eq 0 ]; then
if [ "$window_left_separator_inverse" = "yes" ]; then
local show_left_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$window_left_separator"
else
local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator"
fi
if [ "$window_right_separator_inverse" = "yes" ]; then
local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$window_right_separator"
else
local show_right_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator"
fi
fi
local final_window_format
if [ "$window_number_position" = "right" ]
then
if [ "$window_number_position" = "right" ]; then
final_window_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator"
fi
if [ "$window_number_position" = "left" ]
then
if [ "$window_number_position" = "left" ]; then
final_window_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator"
fi
@ -134,8 +144,7 @@ build_status_module() {
local color=$3
local text=$4
if [ "$status_fill" = "icon" ]
then
if [ "$status_fill" = "icon" ]; then
local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator"
local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon "
@ -143,8 +152,7 @@ build_status_module() {
local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator"
if [ "$status_connect_separator" = "yes" ]
then
if [ "$status_connect_separator" = "yes" ]; then
local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator"
local show_right_separator="#[fg=$thm_gray,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator"
@ -155,8 +163,7 @@ build_status_module() {
fi
if [ "$status_fill" = "all" ]
then
if [ "$status_fill" = "all" ]; then
local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator"
local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon "
@ -164,8 +171,7 @@ build_status_module() {
local show_right_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator"
if [ "$status_connect_separator" = "yes" ]
then
if [ "$status_connect_separator" = "yes" ]; then
local show_left_separator="#[fg=$color,nobold,nounderscore,noitalics]$status_left_separator"
local show_right_separator="#[fg=$color,bg=$color,nobold,nounderscore,noitalics]$status_right_separator"
@ -176,21 +182,29 @@ build_status_module() {
fi
if [ "$status_right_separator_inverse" = "yes" ]
then
if [ "$status_connect_separator" = "yes" ]
then
if [ "$status_left_separator_inverse" = "yes" ]; then
if [ "$status_connect_separator" = "yes" ]; then
local show_left_separator="#[fg=$thm_gray,bg=$color,nobold,nounderscore,noitalics]$status_left_separator"
else
local show_left_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_left_separator"
fi
fi
if [ "$status_right_separator_inverse" = "yes" ]; then
if [ "$status_connect_separator" = "yes" ]; then
local show_right_separator="#[fg=$thm_gray,bg=$color,nobold,nounderscore,noitalics]$status_right_separator"
else
local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_right_separator"
fi
fi
if [ $(($index)) -eq 0 ]
then
if [ $((index)) -eq 0 ]; then
if [ "$status_left_separator_inverse" = "yes" ]; then
local show_left_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_left_separator"
else
local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator"
fi
fi
echo "$show_left_separator$show_icon$show_text$show_right_separator"
}
@ -201,13 +215,13 @@ load_modules() {
local modules_status_path=$PLUGIN_DIR/status
local modules_window_path=$PLUGIN_DIR/window
local module_index=0;
local module_index=0
local module_name
local loaded_modules
local IN=$modules_list
# https://stackoverflow.com/questions/918886/how-do-i-split-a-string-on-a-delimiter-in-bash#15988793
while [ "$IN" != "$iter" ] ;do
while [ "$IN" != "$iter" ]; do
# extract the substring from start of string up to delimiter.
iter=${IN%% *}
# delete this first "element" AND next separator, from $IN.
@ -219,9 +233,8 @@ load_modules() {
local module_path=$modules_custom_path/$module_name.sh
source $module_path
if [ 0 -eq $? ]
then
loaded_modules="$loaded_modules$( show_$module_name $module_index )"
if [ 0 -eq $? ]; then
loaded_modules="$loaded_modules$(show_$module_name $module_index)"
module_index=$module_index+1
continue
fi
@ -229,9 +242,8 @@ load_modules() {
local module_path=$modules_status_path/$module_name.sh
source $module_path
if [ 0 -eq $? ]
then
loaded_modules="$loaded_modules$( show_$module_name $module_index )"
if [ 0 -eq $? ]; then
loaded_modules="$loaded_modules$(show_$module_name $module_index)"
module_index=$module_index+1
continue
fi
@ -239,9 +251,8 @@ load_modules() {
local module_path=$modules_window_path/$module_name.sh
source $module_path
if [ 0 -eq $? ]
then
loaded_modules="$loaded_modules$( show_$module_name $module_index )"
if [ 0 -eq $? ]; then
loaded_modules="$loaded_modules$(show_$module_name $module_index)"
module_index=$module_index+1
continue
fi
@ -263,14 +274,14 @@ main() {
# shellcheck source=catppuccin-frappe.tmuxtheme
# https://github.com/dylanaraps/pure-sh-bible#parsing-a-keyval-file
while IFS='=' read -r key val; do
# Skip over lines containing comments.
# (Lines starting with '#').
[ "${key##\#*}" ] || continue
# Skip over lines containing comments.
# (Lines starting with '#').
[ "${key##\#*}" ] || continue
# '$key' stores the key.
# '$val' stores the value.
eval "local $key"="$val"
done < "${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme"
# '$key' stores the key.
# '$val' stores the value.
eval "local $key"="$val"
done <"${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme"
# status
set status "on"
@ -295,28 +306,31 @@ main() {
# --------=== Statusline
local window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█")
local window_left_separator_inverse=$(get_tmux_option "@catppuccin_window_left_separator_inverse" "no")
local window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█")
local window_right_separator_inverse=$(get_tmux_option "@catppuccin_window_right_separator_inverse" "no")
local window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ")
local window_number_position=$(get_tmux_option "@catppuccin_window_number_position" "left") # right, left
local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left
local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left
local window_format=$( load_modules "window_default_format")
local window_current_format=$( load_modules "window_current_format")
local window_format=$(load_modules "window_default_format")
local window_current_format=$(load_modules "window_current_format")
setw window-status-format "$window_format"
setw window-status-current-format "$window_current_format"
local status_left_separator=$(get_tmux_option "@catppuccin_status_left_separator" "")
local status_left_separator_inverse=$(get_tmux_option "@catppuccin_status_left_separator_inverse" "no")
local status_right_separator=$(get_tmux_option "@catppuccin_status_right_separator" "█")
local status_right_separator_inverse=$(get_tmux_option "@catppuccin_status_right_separator_inverse" "no")
local status_connect_separator=$(get_tmux_option "@catppuccin_status_connect_separator" "yes")
local status_fill=$(get_tmux_option "@catppuccin_status_fill" "icon")
local status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session")
local loaded_modules_right=$( load_modules "$status_modules_right")
local loaded_modules_right=$(load_modules "$status_modules_right")
local status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "")
local loaded_modules_left=$( load_modules "$status_modules_left")
local loaded_modules_left=$(load_modules "$status_modules_left")
set status-left "$loaded_modules_left"
set status-right "$loaded_modules_right"