#!/usr/bin/env bash set -e sessions=() # Get list of predefined session layouts for item in $HOME/.local/share/tmux/layouts/session-*; do sessions+=(${item#$HOME/.local/share/tmux/layouts/session-}) done # Get list of existing sessions sessions+=($(tmux list-sessions | awk -F: '{print $1}')) # Pick the session with fzf (remove duplicates) session=$( echo "${sessions[@]}" | 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