mirror of
https://github.com/fscotto/infra.git
synced 2026-05-31 07:49:57 +00:00
Add tmux package and common dotfiles deployment
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
do_color_interpolation() {
|
||||
local all_interpolated="$1"
|
||||
|
||||
for ((i=0; i<${#color_interpolation[@]}; i++)); do
|
||||
all_interpolated=${all_interpolated//${color_interpolation[$i]}/${color_values[$i]}}
|
||||
done
|
||||
|
||||
echo "$all_interpolated"
|
||||
}
|
||||
51
dotfiles/common/.tmux/plugins/tmux/utils/module_utils.sh
Normal file
51
dotfiles/common/.tmux/plugins/tmux/utils/module_utils.sh
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
|
||||
load_modules() {
|
||||
local modules_list=$1
|
||||
shift
|
||||
local module_directories=("$@")
|
||||
|
||||
local -i module_index=0;
|
||||
local module_name
|
||||
local module_path
|
||||
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
|
||||
# extract the substring from start of string up to delimiter.
|
||||
iter=${IN%% *}
|
||||
# delete this first "element" AND next separator, from $IN.
|
||||
IN="${IN#"$iter "}"
|
||||
# Print (or doing anything with) the first "element".
|
||||
|
||||
module_name=$iter
|
||||
|
||||
for module_dir in "${module_directories[@]}" ; do
|
||||
module_path="$module_dir/$module_name.sh"
|
||||
|
||||
if [ -r "$module_path" ]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "$module_path"
|
||||
loaded_modules="$loaded_modules$( "show_$module_name" "$module_index" )"
|
||||
module_index+=1
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "${module_name/ }" ]]; then
|
||||
if [[ -z "${modules_list/ }" ]]; then
|
||||
tmux_echo "catppuccin warning: a module list has only white space, to remove all modules set it to \"null\"" 100
|
||||
else
|
||||
tmux_echo "catppuccin warning: a module list with value \"$modules_list\" has leading/trailing whitespace" 101
|
||||
fi
|
||||
continue
|
||||
fi
|
||||
|
||||
tmux_echo "catppuccin warning: module $module_name not found" 102
|
||||
|
||||
|
||||
done
|
||||
|
||||
echo "$loaded_modules"
|
||||
}
|
||||
63
dotfiles/common/.tmux/plugins/tmux/utils/tmux_utils.sh
Normal file
63
dotfiles/common/.tmux/plugins/tmux/utils/tmux_utils.sh
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
|
||||
tmux_echo() {
|
||||
local hook
|
||||
hook="after-new-session[$2]"
|
||||
|
||||
tmux set-hook -g "$hook" "run-shell 'echo \"$1\"'; set-hook -gu \"$hook\""
|
||||
}
|
||||
|
||||
get_tmux_option() {
|
||||
local option value default
|
||||
option="$1"
|
||||
default="$2"
|
||||
value=$(tmux show-option -gqv "$option")
|
||||
|
||||
if [ -n "$value" ]
|
||||
then
|
||||
if [ "$value" = "null" ]
|
||||
then
|
||||
echo ""
|
||||
|
||||
else
|
||||
echo "$value"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "$default"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
get_interpolated_tmux_option() {
|
||||
local option value default
|
||||
option="$1"
|
||||
default="$2"
|
||||
value=$(tmux show-option -gqv "$option")
|
||||
|
||||
if [ -n "$value" ]
|
||||
then
|
||||
if [ "$value" = "null" ]
|
||||
then
|
||||
echo ""
|
||||
|
||||
else
|
||||
do_color_interpolation "$value"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "$default"
|
||||
fi
|
||||
}
|
||||
|
||||
set() {
|
||||
local option=$1
|
||||
local value=$2
|
||||
tmux_commands+=(set-option -gq "$option" "$value" ";")
|
||||
}
|
||||
|
||||
setw() {
|
||||
local option=$1
|
||||
local value=$2
|
||||
tmux_commands+=(set-window-option -gq "$option" "$value" ";")
|
||||
}
|
||||
Reference in New Issue
Block a user