tmux wrapper
This commit is contained in:
parent
1a50e9afd1
commit
1fb9627aa7
41
user/bin/sh-tmux
Executable file
41
user/bin/sh-tmux
Executable 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
|
||||
Loading…
Reference in a new issue