浏览代码

Adding option to prevent autostarting tmux more than once in the same session.

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

+ 12 - 1
plugins/tmux/tmux.plugin.zsh

@@ -1,6 +1,10 @@
 # Configuration variables
+#
 # Automatically start tmux
 [[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false
+# Only autostart once. If set to false, tmux will attempt to
+# autostart every time your zsh configs are reloaded.
+[[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true
 # Automatically connect to a previous session if it exists
 [[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true
 # Automatically close the terminal when tmux exits
@@ -8,6 +12,7 @@
 # Set term to screen or screen-256color based on current terminal support
 [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
 
+
 # Get the absolute path to the current directory
 local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
 
@@ -54,7 +59,13 @@ function zsh_tmux_plugin_run()
 # Alias tmux to our wrapper function.
 alias tmux=zsh_tmux_plugin_start
 
+# Autostart if not already in tmux and enabled.
 if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]]
 then
-	zsh_tmux_plugin_run
+	# Actually don't autostart if we already did and multiple autostarts are disabled.
+	if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]
+	then
+		export ZSH_TMUX_AUTOSTARTED=true
+		zsh_tmux_plugin_run
+	fi
 fi