diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2024-08-02 15:27:29 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2024-08-02 15:27:29 -0300 |
commit | 5585ddfc0b7098900a916cf581736f3601d4c7db (patch) | |
tree | af1222ea201aa5c4e6eb497c9899b715bc36a9d5 | |
parent | 6ced9f8d7442563a48cb06a96e374030f363a328 (diff) | |
download | termplex-5585ddfc0b7098900a916cf581736f3601d4c7db.tar.gz termplex-5585ddfc0b7098900a916cf581736f3601d4c7db.tar.bz2 |
Feat: support for starting detached tmux sessions
-rwxr-xr-x | shell | 11 | ||||
-rwxr-xr-x | wtmux | 22 |
2 files changed, 22 insertions, 11 deletions
@@ -59,6 +59,9 @@ fi # Set default screen title window_title $DEST +# Shift args +shift 2 + # Dispatcher if [ "$BASENAME" == "shells" ]; then # Remote screen shell using $AUTOSSH @@ -66,7 +69,7 @@ if [ "$BASENAME" == "shells" ]; then SUDO="sudo" $AUTOSSH $DEST -t -- "`shell_remote_multiplexer`" else - $AUTOSSH $DEST -t -- "`shell_remote_multiplexer` $COMMAND" + $AUTOSSH $DEST -t -- "`shell_remote_multiplexer` $COMMAND $*" fi else if [ -z "$COMMAND" ] && shell_${LOCAL_MULTIPLEXER}_ls $DEST; then @@ -80,14 +83,14 @@ else elif [ -z "$COMMAND" ] && ( [ -f "$HOME/.screen/$DEST" ] || [ -f "$HOME/.tmux/$DEST" ] ); then # Local root shell window_title $DEST - shell local $DEST + shell local $DEST $* elif [ "$DEST" == "local" ]; then # Local screen shell window_title $COMMAND - $LOCAL_MULTIPLEXER $COMMAND + $LOCAL_MULTIPLEXER $COMMAND $* else # Remote shell using $AUTOSSH - $AUTOSSH $DEST -t -- $COMMAND + $AUTOSSH $DEST -t -- $COMMAND $* fi fi @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # # Worktemux: tmux session wrapper # https://robots.thoughtbot.com/a-tmux-crash-course @@ -12,17 +13,22 @@ # Default options. opts="" +name="$1" +state="$2" # Session selection. -if [ ! -z "$1" ]; then - if ! tmux list-sessions 2> /dev/null | grep -q "^$1:"; then - session="new-session -d -s $1" +if [ ! -z "${name}" ]; then + if ! tmux list-sessions 2> /dev/null | grep -q "^${name}:"; then + session="new-session -d -s ${name}" - if [ "$1" = "root" ]; then + # Use a unique, per-session name + #session"${session} -t ${name}" + + if [ "${name}" = "root" ]; then sudo tmux attach exit - elif [ -f "$HOME/.tmux/$1" ]; then - opts="$HOME/.tmux/$1" + elif [ -f "$HOME/.tmux/${name}" ]; then + opts="$HOME/.tmux/${name}" elif [ -f "$HOME/.tmux/base" ]; then opts="$HOME/.tmux/base" else @@ -37,7 +43,9 @@ if [ ! -z "$1" ]; then fi fi - tmux attach -t $1 + if [ -z "$state" ] || [ "$state" == "attached" ]; then + tmux attach -t ${name} + fi else tmux fi |