1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 20:59:26 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
5e6adf89b9 make tmux module have optional attach behavior
This commit reverts the tmux module back to the original behavior but
doesn't set `destroy-unattached` to on `on` globally and provides an
option for attaching to the background or last-used session.
2014-04-19 01:24:45 -04:00
2 changed files with 27 additions and 14 deletions

View File

@ -20,19 +20,25 @@ following line to *zpreztorc*:
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
In both cases, it will create a background session named _prezto_ if the tmux
server is not started.
In both cases the tmux server will be started and a background session
named _prezto_ will be created if a session doesn't already exist.
You can change the default session name with:
By default every shell shares a set of windows but has an independent
view. Detaching from one of these sessions removes the view but the
open windows persist. This is accomplished by setting the
`destroy-unattached` option to `on` for each session.
zstyle ':prezto:module:tmux' session 'YOUR DEFAULT SESSION NAME'
Some users prefer that all new shells share the same session so that
the view for each shell is in sync. This useful for advanced users
that create multiple sessions and want to manually navigate between
them. To accomplish this behavior set the `mode` option to `shared` in
*zpreztorc*,
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*:
zstyle ':prezto:module:tmux:auto-start' mode shared
You can customize the background session by creating a new session in
your `.tmux.conf` file.
set-option -g destroy-unattached [on | off]
Aliases
-------

View File

@ -25,14 +25,21 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \
# Create a 'prezto' session if no session has been defined in tmux.conf.
if ! tmux has-session 2> /dev/null; then
zstyle -s ':prezto:module:tmux' session 'session' || session='prezto'
tmux \
new-session -d -s "$session" \; \
set-option -t "$session" destroy-unattached off &> /dev/null
new-session -d -s prezto \; \
set-option -t prezto destroy-unattached off &> /dev/null
else
tmux_session
fi
if zstyle -t ':prezto:module:tmux:auto-start' mode shared; then
# Attach to the 'prezto' session or to the last session used.
exec tmux attach-session
exec tmux attach
else
# Find a session to share windows with.
tmux_session=`tmux list-sessions -F '#S' | head -n 1`
exec tmux new-session -t "$tmux_session"\; set-option destroy-unattached on
fi
fi
#