#!/bin/sh # dmux: a simple terminal session switcher on top of dtach and fzf # Created by Luxferre in 2026, released into the public domain SDIR="$HOME/.dtsess" SPFILE="$SDIR/.list" mkdir -p "$SDIR" touch "$SPFILE" if [ -z "$(ls -1 "$SDIR")" ]; then cat "$SPFILE" | while read -r sess; do dtach -n "$SDIR/$sess" $SHELL done fi FTR='Select a session or create a new one' while true; do ls -1 "$SDIR" > "$SPFILE" slist="$(nl -nln -w1 -s' - ' "$SPFILE")" sname="$(printf '%s\nNew\nQuit\n' "$slist" | grep . | fzf --tac --footer="$FTR")" [ "$sname" = 'Quit' ] && break [ "$sname" = 'New' ] && read -r -p 'New session name: ' sname sname="$(echo "$sname" | sed -E 's/^[0-9]+\ -\ //')" [ -n "$sname" ] && printf '\033[0m' && dtach -A "$SDIR/$sname" $SHELL done