Added dmux
This commit is contained in:
@@ -17,3 +17,4 @@
|
|||||||
* [BitShade](./bitshade.sh): a steganographic tool for hiding any data file inside a PNG image
|
* [BitShade](./bitshade.sh): a steganographic tool for hiding any data file inside a PNG image
|
||||||
* [BlueShift](./blueshift.sh): a high-density steganographic tool for hiding any data file inside a PNG image
|
* [BlueShift](./blueshift.sh): a high-density steganographic tool for hiding any data file inside a PNG image
|
||||||
* [abmux](./abmux.sh): a simple terminal session switcher on top of abduco, fzf and expect
|
* [abmux](./abmux.sh): a simple terminal session switcher on top of abduco, fzf and expect
|
||||||
|
* [dmux](./dmux.sh): a simple terminal session switcher on top of dtach and fzf
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#!/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
|
||||||
Reference in New Issue
Block a user