28 lines
705 B
Bash
Executable File
28 lines
705 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
session=()
|
|
|
|
# Get list of predefined session layouts
|
|
for item in $HOME/.local/share/tmux/layouts/session-*; do
|
|
item=${item#$HOME/.local/share/tmux/layouts/}
|
|
session+=(${item#session-})
|
|
done
|
|
|
|
# Get list of existing sessions
|
|
for s in $(tmux list-sessions | awk -F: '{print $1}'); do
|
|
session+=($s)
|
|
done
|
|
|
|
# Pick the session with fzf (remove duplicates)
|
|
session=$(
|
|
echo "${session[@]}" | tr ' ' '\n' | sort -u |
|
|
fzf --layout=reverse --info=hidden --border=rounded --cycle
|
|
)
|
|
|
|
# Create the session if it doesn't alreayd exist
|
|
tmux list-sessions | grep "^$session:" &> /dev/null || \
|
|
tmux new-session -Ads $session -c $HOME
|
|
|
|
# Switch to the session
|
|
tmux switch-client -t $session
|