tmux wrapper

This commit is contained in:
caandt 2024-10-18 02:06:09 -05:00
parent 1a50e9afd1
commit 1fb9627aa7

41
user/bin/sh-tmux Executable file
View file

@ -0,0 +1,41 @@
#!/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