#!/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" mapfile -t MENU < "$SPFILE" if [[ -z "$(ls -1 "$SDIR")" ]]; then for sess in "${MENU[@]}"; do 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