#!/usr/bin/env zsh tmux start attach_tmux () { TMUX_SESSION="$1" tmux attach -t "$TMUX_SESSION" -d } new_tmux () { TMUX_SESSION="$1" exec tmux new-session -s "$TMUX_SESSION" } tmux_sessions() { echo tmux ls } complete_sessions() { tmux_sessions | fzf --bind alt-enter:print-query -n 1 -d: | cut -d: -f1 } if [[ x"$1" == x ]]; then TMUX_SESSION="$(complete_sessions)" if [[ -n "$TMUX_SESSION" ]]; then attach_tmux "$TMUX_SESSION" && exit 0 fi echo -n "No such session '$TMUX_SESSION', new session [y/N]? " read NEW_SESSION NEW_SESSION="${NEW_SESSION/Y/y}" if [[ x"${NEW_SESSION[1]}" == x'y' ]]; then new_tmux "$TMUX_SESSION" fi echo "Either you decided not to create a new session or something went _horribly_ wrong!" read BOB else attach_tmux "$1" || new_tmux "$1" fi