Browse Source

[Fix #543] Do not set tmux destroy-unattached

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
master
Xavier Cambar 11 years ago committed by Sorin Ionescu
parent
commit
478653fab2
  1. 14
      modules/tmux/README.md
  2. 26
      modules/tmux/init.zsh
  3. 1
      runcoms/zpreztorc

14
modules/tmux/README.md

@ -20,12 +20,15 @@ following line to *zpreztorc*: @@ -20,12 +20,15 @@ following line to *zpreztorc*:
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
In both cases, it will create a background session named _#Prezto_ and attach
every new shell to it.
In both cases, it will create a background session named _prezto_ if the tmux
server is not started.
To avoid keeping open sessions, this module sets `destroy-unattached off` on
the background session and `destroy-unattached on` on every other session
(global setting).
With `auto-start` enabled, you may want to control how multiple sessions are
managed. The `destroy-unattached` option of tmux controls if the unattached
sessions must be kept alive, making sessions available for later use, configured
in *tmux.conf*:
set-option -g destroy-unattached [on | off]
Aliases
-------
@ -54,6 +57,7 @@ Authors @@ -54,6 +57,7 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert)
- [Georges Discry](https://github.com/gdiscry)
- [Xavier Cambar](https://github.com/xcambar)
[1]: http://tmux.sourceforge.net
[2]: https://github.com/sorin-ionescu/prezto/issues/62

26
modules/tmux/init.zsh

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Colin Hebert <hebert.colin@gmail.com>
# Georges Discry <georges@discry.be>
# Xavier Cambar <xcambar@gmail.com>
#
# Return if requirements are not found.
@ -22,25 +23,16 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ @@ -22,25 +23,16 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \
); then
tmux_session='prezto'
if ! tmux has-session -t "$tmux_session" 2> /dev/null; then
# Ensure that tmux server is started.
tmux start-server
# 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
# Create a first 'prezto' session if tmux is starting.
if ! tmux has-session 2> /dev/null; then
tmux \
start-server \; \
new-session -d -s "$tmux_session" \; \
set-option -t "$tmux_session" destroy-unattached off &> /dev/null
fi
exec tmux new-session -t "$tmux_session"
# Attach to the 'prezto' session or to the last session used.
exec tmux attach-session
fi
#

1
runcoms/zpreztorc

@ -152,4 +152,3 @@ zstyle ':prezto:module:prompt' theme 'sorin' @@ -152,4 +152,3 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# Auto start a session when Zsh is launched in a SSH connection.
# zstyle ':prezto:module:tmux:auto-start' remote 'yes'

Loading…
Cancel
Save