From cd7af21998d851540a610e13365a7bda399446b2 Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Tue, 20 Mar 2012 15:40:43 +0000 Subject: [PATCH] Create new session of tmux every time Instead of just attaching to the first session available, create a new session based on the windows of a "principal session" The main session is a daemon, other sessions are automatically destroyed when no client is attached --- plugins/tmux/init.zsh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/plugins/tmux/init.zsh b/plugins/tmux/init.zsh index 734166f4..a5f894fc 100644 --- a/plugins/tmux/init.zsh +++ b/plugins/tmux/init.zsh @@ -18,16 +18,15 @@ alias tl="tmux list-sessions" # Auto Start if [[ -z "$TMUX" ]] && zstyle -t ':omz:plugin:tmux:auto' start; then + tmux_session='#OMZ' - 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 + if ! tmux has-session -t "$tmux_session" 2> /dev/null; then + # Override potential tmux configuration + tmux set-option -g destroy-unattached off &> /dev/null + tmux new-session -d -s "$tmux_session" + tmux set-option -t "$tmux_session" destroy-unattached off &> /dev/null + # Mandatory, or we'll end up with a lot of open session detached + tmux set-option -g destroy-unattached on &> /dev/null fi + exec tmux new-session -t "$tmux_session" fi -