#!/bin/sh # tmux wrapper script to attach to unattached sessions and auto number session new_session () { n=1 sessions="$(tmux ls -F '#S' 2> /dev/null )" while :; do for session in $sessions; do if [ "$n" = "$session" ]; then n=$((n+1)) continue 2 fi done break done tmux new-session -s $n 2> /dev/null } attach_session () { for session in $(tmux ls -F '#{?session_attached,,#S}' 2> /dev/null); do if [ ! -z "$session" ]; then tmux attach -t "${session}" 2> /dev/null return fi done new_session } if [ "$1" = "-d" ]; then SH_TMUX_PID=$(tmux show-environment | sed -n 's/^SH_TMUX_PID=//p') kill -USR1 $SH_TMUX_PID tmux detach-client else trap 'NOTMUX=y exec $SHELL' USR1 export SH_TMUX_PID=$$ if [ "$1" != "-n" ]; then attach_session else new_session fi fi