From 3da5eb59b720e871cdd531bcc3c5ad018c52923e Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Sat, 18 Jan 2014 12:45:41 -0800 Subject: [PATCH] Fixes for iTerm2 Tmux integration --- plugins/tmux/tmux.plugin.zsh | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index a3f64a8e7..9eec74bbd 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -46,7 +46,7 @@ if which tmux &> /dev/null fi # Set the correct local config file to use. - if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] + if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && [[ -e "$HOME/.tmux.conf" ]] then #use this when they have a ~/.tmux.conf export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf" @@ -58,19 +58,37 @@ if which tmux &> /dev/null # Wrapper function for tmux. function _zsh_tmux_plugin_run() { + if [[ "$ZSH_TMUX_ITERM2" == "true" ]] + then _fix='-CC' + else _fix='' + fi + if [[ "$ZSH_TMUX_FIXTERM" == "true" && "$ZSH_TMUX_ITERM2" == "false" ]] + then _file="-f $_ZSH_TMUX_FIXED_CONFIG" + else _file='' # Can't use -f with -CC + fi + if [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] + then _exit='exit' + else _exit='' + fi # We have other arguments, just run them if [[ -n "$@" ]] then - tmux $@ + tmux "$@" # Try to connect to an existing session. elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] then - tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` attach || tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session - [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + if (tmux has) + then + \tmux $_fix attach + $_exit + else + \tmux $_fix $_file new + $_exit + fi # Just run tmux, fixing the TERM variable if requested. else - tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` - [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + \tmux $_fix $_file new + $_exit fi }