sss: Add an optional session name
authorMikael Berthe <mikael@lilotux.net>
Tue, 22 Sep 2015 20:41:44 +0200
changeset 33 1400f5ed243c
parent 32 0df5ad40ffb9
child 34 f4fd388eb9a0
sss: Add an optional session name
zshrc.d/30-functions-tmux.zrc
--- a/zshrc.d/30-functions-tmux.zrc	Wed Sep 02 19:07:59 2015 +0200
+++ b/zshrc.d/30-functions-tmux.zrc	Tue Sep 22 20:41:44 2015 +0200
@@ -11,14 +11,15 @@
     local TTYLOCKER="${TTYLOCKER:-$HOME/bin/ttylocker}"
     local SCREENBIN="/usr/bin/screen"
     local TMUXBIN="/usr/bin/tmux"
+    local session="$1"
 
     if [[ -x $SCREENBIN ]]; then
-        $SCREENBIN -q -list
+        $SCREENBIN -q -list $session
         local r=$?
         if (( r == 11 )); then
             # There is 1 usable Screen session, let's go
             [[ -x "$TTYLOCKER" ]] && export LOCKPRG="$TTYLOCKER"
-            exec $SCREENBIN -r -x
+            exec $SCREENBIN -r -x $session
         elif (( r > 11 )); then
             # There are several usable Screen sessions, heh
             echo "There are several usable Screen sessions..."
@@ -28,6 +29,11 @@
 
     # No usable GNU/Screen session, let's try tmux then.
     if [[ -x "$TMUXBIN" ]]; then
+        if [[ -n $session ]]; then
+            $TMUXBIN has-session -t "$session" &&
+                exec $TMUXBIN attach-session -t "$1"
+            return # Exit function with error code
+        fi
         # Number of tmux sessions
         integer n=$($TMUXBIN list-sessions 2>/dev/null | wc -l)
         if (( n == 1 )); then