# create/attach to named session. ta() { local name="$1" # set default name. if [[ "$name" = "" ]]; then name="main" fi # call tmux. tmux new -s "$name" 2> /dev/null || tmux attach-session -t "$name" } # detach. alias td="tmux detach-client" # list. alias tl="tmux list-sessions" # Rename current session. Uses current dir name by default. # Usage: tr [NAME] tr() { local name="${1}" [[ "${name}" = "" ]] && name="${PWD##*/}" tmux rename-session "${name}" } # Assign name (to window). Uses current dir name by default. # Usage: tn [NAME] tn() { local name="${1}" [[ "${name}" = "" ]] && name="${PWD##*/}" tmux rename-window "${name}" } # kill specified session or default one. tk() { local name="$1" # set default name. if [[ "$name" = "" ]]; then name="main" fi # call tmux. tmux kill-session -t "$name" } # kill all sessions. tka() { local sessions=$(tmux list-sessions | sed -e 's/:.*//') for session in $sessions; do tmux kill-session -t "$session" done } # autocompletes. _ta() { _autocomplete_first "$(tmux list-sessions 2> /dev/null | sed -e 's/:.*//')" } complete -F _ta ta tk