Refactor tmux shell behavior

pull/2/head
Bodaniel Jeanes 2012-01-04 19:43:48 -06:00
parent a94435f221
commit 3e1d54f454
2 changed files with 23 additions and 14 deletions

View File

@ -3,20 +3,7 @@ COMMON_SHELL_FILES="$SHELL_FILES/../common"
# TODO: Remove duplicates from the PATH # TODO: Remove duplicates from the PATH
PATH="/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/usr/bin:/usr/sbin:/bin:/sbin:${PATH}" PATH="/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/usr/bin:/usr/sbin:/bin:/sbin:${PATH}"
if [ -z "$TMUX" ]; then source "$SHELL_FILES/../tmux.sh"
if which tmux 2>&1 >/dev/null; then
if [ -z "$(tmux ls | grep 'login:')" ]; then
tmux new-session -d -s login # Create a detached session called login
tmux new-session -t login # Create a *new* session bound to the same windows
else
last_session="$(tmux list-windows -t login | tail -n1 | cut -d: -f1)"
tmux new-session -t login \; new-window -a -t $last_session # Create a *new* session bound to "login" and create a new window
fi
fi
exit
fi
CDPATH=".:${HOME}" CDPATH=".:${HOME}"
if [ -d "$HOME/Code" ]; then if [ -d "$HOME/Code" ]; then

22
shells/tmux.sh 100644
View File

@ -0,0 +1,22 @@
# I always want to be in a Tmux session. Always.
#
# This creates a single always-running "login" session, and creates
# new session as needed that are bound to "login"'s window group.
# This lets me have a different terminals tabs/windows have the same tmux
# windows but be looking at different ones individually
# If we aren't in Tmux, set it up
if [ -z "$TMUX" ]; then
if which tmux 2>&1 >/dev/null; then
if [ -z "$(tmux ls | grep 'login:')" ]; then
tmux new-session -d -s login # Create a detached session called login
tmux new-session -t login # Create a *new* session bound to the same windows
else
last_session="$(tmux list-windows -t login | tail -n1 | cut -d: -f1)"
tmux new-session -t login \; new-window -a -t $last_session # Create a *new* session bound to "login" and create a new window
fi
fi
# When Tmux exits, we exit
exit
fi