Files
bash-goodies/bmux
T

24 lines
722 B
Bash
Raw Normal View History

2026-05-28 11:15:00 +03:00
#!/usr/bin/env bash
# bmux: a simple terminal session switcher in Bash on top of dtach
# Created by Luxferre in 2026, released into the public domain
SDIR="$HOME/.dtsess"
SPFILE="$SDIR/.list"
mkdir -p "$SDIR"
touch "$SPFILE"
2026-05-28 11:19:53 +03:00
mapfile -t MENU < "$SPFILE"
2026-05-28 11:15:00 +03:00
if [[ -z "$(ls -1 "$SDIR")" ]]; then
2026-05-28 11:19:53 +03:00
for sess in "${MENU[@]}"; do
2026-05-28 11:15:00 +03:00
dtach -n "$SDIR/$sess" $SHELL
done
fi
PS3='Select a session: '
while true; do
select sname in "${MENU[@]}" New Quit; do break; done
[[ "$sname" = 'Quit' ]] && printf '\033[0m' && break
[[ "$sname" = 'New' ]] && read -r -p 'New session name: ' sname
[[ -n "$sname" ]] && printf '\033[0m' && dtach -A "$SDIR/$sname" $SHELL
ls -1 "$SDIR" > "$SPFILE"
mapfile -t MENU < "$SPFILE"
done