# # Defines tmux aliases and provides for auto launching it at start-up. # # Authors: # Sorin Ionescu # Colin Hebert # Georges Discry # Xavier Cambar # # Return if requirements are not found. if (( ! $+commands[tmux] )); then return 1 fi # # Auto Start # if ([[ "$TERM_PROGRAM" = 'iTerm.app' ]] && \ zstyle -t ':prezto:module:tmux:iterm' integrate \ ); then _tmux_iterm_integration='-CC' fi if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ ); then tmux start-server # Create a 'prezto' session if no session has been defined in tmux.conf. if ! tmux has-session 2> /dev/null; then tmux_session='prezto' tmux \ new-session -d -s "$tmux_session" \; \ set-option -t "$tmux_session" destroy-unattached off &> /dev/null fi # Attach to the 'prezto' session or to the last session used. exec tmux $_tmux_iterm_integration attach-session fi # # Functions # tmux-new-session() { local name=$(basename $(pwd)) tmux list-sessions | grep -q "^$name:" if [ $? = 0 ]; then tmux attach-session -t $name else tmux new-session -s $name fi } # # Aliases # alias tmuxa="tmux $_tmux_iterm_integration new-session -A" alias tmuxl='tmux list-sessions' alias tmuxn='tmux-new-session'