diff options
-rwxr-xr-x | shell | 5 | ||||
-rwxr-xr-x | wtmux | 31 |
2 files changed, 34 insertions, 2 deletions
@@ -7,6 +7,7 @@ BASENAME="`basename $0`" DEST="$1" COMMAND="$2" +MULTIPLEXER="wscreen" # Set window title # http://stackoverflow.com/questions/899609/gnu-screen-run-script-that-sends-commands-to-the-screen-session-it-is-being-run @@ -39,7 +40,7 @@ if [ "$BASENAME" == "shells" ]; then else if [ -z "$COMMAND" ] && screen -ls $DEST | grep -q "There is a screen on"; then # Local existing screen shell - wscreen $DEST + $MULTIPLEXER $DEST elif [ -z "$COMMAND" ] && [ "$DEST" == "root" ]; then # Local root shell window_title root @@ -51,7 +52,7 @@ else elif [ "$DEST" == "local" ]; then # Local screen shell window_title $COMMAND - wscreen $COMMAND + $MULTIPLEXER $COMMAND else # Remote shell using autossh autossh $DEST -t -- $COMMAND @@ -0,0 +1,31 @@ +# +# Worktemux: tmux session wrapper +# https://robots.thoughtbot.com/a-tmux-crash-course +# + +# Default options. +opts="" + +# Session selection. +if [ ! -z "$1" ]; then + if tmux list-sessions 2> /dev/null | grep -q "^$1:"; then + tmux attach -t $1 + exit $? + else + session="new -s $1" + fi + + if [ "$1" == "root" ]; then + sudo tmux attach + exit + elif [ -f "$HOME/.tmux/$1" ]; then + opts="-f $HOME/.tmux/$1" + elif [ -f "$HOME/.tmux/base" ]; then + opts="-f $HOME/.tmux/base" + else + opts="" + fi +fi + +# Start session. +tmux $opts $session |