From 3e1d54f454e60e3620d2c4d1e855a27634537494 Mon Sep 17 00:00:00 2001 From: Bodaniel Jeanes Date: Wed, 4 Jan 2012 19:43:48 -0600 Subject: [PATCH] Refactor tmux shell behavior --- shells/bootstrap.sh | 15 +-------------- shells/tmux.sh | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 shells/tmux.sh diff --git a/shells/bootstrap.sh b/shells/bootstrap.sh index a77670e..78ea2b8 100644 --- a/shells/bootstrap.sh +++ b/shells/bootstrap.sh @@ -3,20 +3,7 @@ COMMON_SHELL_FILES="$SHELL_FILES/../common" # TODO: Remove duplicates from the PATH PATH="/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/usr/bin:/usr/sbin:/bin:/sbin:${PATH}" -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 - - exit -fi - +source "$SHELL_FILES/../tmux.sh" CDPATH=".:${HOME}" if [ -d "$HOME/Code" ]; then diff --git a/shells/tmux.sh b/shells/tmux.sh new file mode 100644 index 0000000..56ddaad --- /dev/null +++ b/shells/tmux.sh @@ -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