From 4200cbd91510191985b9f614f758f2f5edd48307 Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Tue, 20 Mar 2012 15:40:43 +0000 Subject: [PATCH] [Fix #55] Use a tmux daemon session --- plugins/tmux/init.zsh | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/tmux/init.zsh b/plugins/tmux/init.zsh index 97875fec..1d0dfb75 100644 --- a/plugins/tmux/init.zsh +++ b/plugins/tmux/init.zsh @@ -21,15 +21,23 @@ alias tl="tmux list-sessions" # Auto Start if [[ -z "$TMUX" ]] && zstyle -t ':omz:plugin:tmux:auto' start; then - session="$( - tmux list-sessions 2> /dev/null \ - | cut -d':' -f1 \ - | head -1)" - - if [[ -n "$session" ]]; then - exec tmux attach-session -t "$session" - else - exec tmux new-session + tmux_session='#OMZ' + + if ! tmux has-session -t "$tmux_session" 2> /dev/null; then + # Disable the destruction of unattached sessions globally. + tmux set-option -g destroy-unattached off &> /dev/null + + # Create a new session. + tmux new-session -d -s "$tmux_session" + + # Disable the destruction of the new, unattached session. + tmux set-option -t "$tmux_session" destroy-unattached off &> /dev/null + + # Enable the destruction of unattached sessions globally to prevent + # an abundance of open, detached sessions. + tmux set-option -g destroy-unattached on &> /dev/null fi + + exec tmux new-session -t "$tmux_session" fi