From 5585ddfc0b7098900a916cf581736f3601d4c7db Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 2 Aug 2024 15:27:29 -0300 Subject: Feat: support for starting detached tmux sessions --- shell | 11 +++++++---- wtmux | 22 +++++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/shell b/shell index 0dd64e6..df569e9 100755 --- a/shell +++ b/shell @@ -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 diff --git a/wtmux b/wtmux index bef84c6..aa48386 100755 --- a/wtmux +++ b/wtmux @@ -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 -- cgit v1.2.3