浏览代码

Adding main function and alias to tmux plugin.

Josh Matthews 12 年之前
父节点
当前提交
26ee66f179
共有 1 个文件被更改,包括 33 次插入4 次删除
  1. 33 4
      plugins/tmux/tmux.plugin.zsh

+ 33 - 4
plugins/tmux/tmux.plugin.zsh

@@ -1,12 +1,41 @@
 # Configuration variables
 # Configuration variables
 # Automatically start tmux
 # Automatically start tmux
-[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART = false
+[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false
 # Automatically connect to a previous session if it exists
 # Automatically connect to a previous session if it exists
-[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT = true
+[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true
 # Automatically close the terminal when tmux exits
 # Automatically close the terminal when tmux exits
-[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT = true
+[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
 # Set term to screen or screen-256color based on current terminal support
 # Set term to screen or screen-256color based on current terminal support
-[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT = true
+[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT=true
 
 
 # Get the absolute path to the current directory
 # Get the absolute path to the current directory
 local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
 local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
+
+# Local variable to store the local config file to use, if any.
+local fixed_config=""
+
+# Set the correct local config file to use
+if [[ "$ZSH_TMUX_FIXTERM" == "true" ]]
+then
+	if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]]
+	then
+		fixed_config=$zsh_tmux_plugin_path/tmux.extra.conf
+	else
+		fixed_config=$zsh_tmux_plugin_path/tmux.only.conf
+	fi
+fi
+
+# Override tmux with our function
+function zsh_tmux_plugin_start()
+{
+	if [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]
+	then
+		\tmux attach || tmux -f $fixed_config new-session
+		[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
+	else
+		\tmux -f $fixed_config
+		[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
+	fi
+}
+
+alias tmux=zsh_tmux_plugin_start