tmuxconfig/tmux-sessionizer
2024-07-26 23:41:06 +02:00

54 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/bash
HOMEDIR=~
which fd > /dev/null
if [ 0 = $? ]; then
SEL_DIR=$(fd . ~ --type directory | fzf) # if fd-find is installed
else
SEL_DIR=$(find ~ -not -path "*/.*" -type d -print 2>/dev/null | fzf)
fi
SEL_NAME=$(basename "$SEL_DIR")
new_session_name(){
RET=0
while [[ $RET -eq 0 ]]; do
clear
read -p "New session name: " SEL_NAME
if [[ -z "$SEL_NAME" ]]; then
clear
else
RET=1
fi
done
}
if [[ -z "$SEL_DIR" ]] || [[ -n "$SEL_DIR" ]] && [[ "$SEL_DIR" == "$HOMEDIR" ]]; then
new_session_name
else
RET=0
while [[ $RET -eq 0 ]]; do
clear
read -r -p "Choose a different session-name? [y/n] " USR_CHOICE
echo $USR_CHOICE
if [[ "$USR_CHOICE" == "y" ]]; then
clear
new_session_name
RET=1
elif [[ "$USR_CHOICE" == "n" ]]; then
clear
RET=1
else
clear
fi
done
fi
SEL_NAME=$(tr "[:lower:]" "[:upper:]" <<< "$SEL_NAME")
tmux new-session -d -s "$SEL_NAME" -c "$SEL_DIR"
if [[ -e "$TMUX" ]]; then
tmux switch-client -t "$SEL_NAME"
else
tmux attach -t "$SEL_NAME"
fi