83 lines
3.5 KiB
Bash
Executable File
83 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# sethmux cheat sheet — runs in the persistent help tab
|
|
# Read-only: all keyboard input is silently consumed
|
|
# Redraws on terminal resize via trap
|
|
|
|
stty -echo -icanon 2>/dev/null
|
|
|
|
draw() {
|
|
clear
|
|
COLS=$(tput cols)
|
|
W=$((COLS > 80 ? 80 : COLS))
|
|
|
|
ORANGE=$'\033[38;2;211;84;0m'
|
|
DIM=$'\033[2m'
|
|
BOLD=$'\033[1m'
|
|
WHITE=$'\033[97m'
|
|
GRAY=$'\033[90m'
|
|
RST=$'\033[0m'
|
|
UL=$'\033[4m'
|
|
|
|
echo ""
|
|
echo "${ORANGE}${BOLD} sethmux cheat sheet${RST}"
|
|
echo "${GRAY} ─────────────────────────────────────────────${RST}"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Tabs${RST}${GRAY} (kitty-style)${RST}"
|
|
echo " ${WHITE}Ctrl+Shift+T${RST} New tab"
|
|
echo " ${WHITE}Ctrl+Shift+W${RST} Close tab"
|
|
echo " ${WHITE}Ctrl+Shift+Right${RST} Next tab"
|
|
echo " ${WHITE}Ctrl+Shift+Left${RST} Previous tab"
|
|
echo " ${WHITE}Ctrl+Shift+1-9${RST} Go to tab N"
|
|
echo " ${WHITE}Ctrl+Shift+. / ,${RST} Move tab fwd / back"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Splits & Panes${RST}"
|
|
echo " ${WHITE}Ctrl+Shift+Enter${RST} New split"
|
|
echo " ${WHITE}Ctrl+Shift+] / [${RST} Next / prev pane"
|
|
echo " ${WHITE}Ctrl+Shift+L${RST} Cycle layouts"
|
|
echo " ${WHITE}F11${RST} Zoom pane (fullscreen)"
|
|
echo " ${WHITE}Ctrl-A v${RST} Split vertical ${DIM}(dvorak)${RST}"
|
|
echo " ${WHITE}Ctrl-A s${RST} Split horizontal ${DIM}(dvorak)${RST}"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Scrollback & Copy${RST}"
|
|
echo " ${WHITE}Ctrl+Shift+Up/Down${RST} Scroll line"
|
|
echo " ${WHITE}Ctrl+Shift+PgUp/Dn${RST} Scroll page"
|
|
echo " ${WHITE}Ctrl+Shift+Home/End${RST} Top / bottom"
|
|
echo " ${WHITE}Ctrl+Shift+H${RST} Scrollback in pager"
|
|
echo " ${WHITE}Ctrl+Shift+C${RST} Enter copy mode (vi)"
|
|
echo " ${WHITE}Ctrl+Shift+V${RST} Paste"
|
|
echo " ${DIM} In copy mode: v=select y=yank q=quit${RST}"
|
|
echo ""
|
|
echo "${ORANGE}${UL}AI Workflow${RST}"
|
|
echo " ${WHITE}Ctrl-A S${RST} Save pane → ~/logs/"
|
|
echo " ${WHITE}Ctrl-A L${RST} Toggle live logging"
|
|
echo " ${WHITE}Ctrl+Shift+Delete${RST} Clear terminal+history"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Quick Access${RST}${GRAY} (no prefix)${RST}"
|
|
echo " ${WHITE}Alt-T${RST} New tab"
|
|
echo " ${WHITE}Alt-W${RST} Close tab"
|
|
echo " ${WHITE}Alt-1..5${RST} Go to tab 1-5"
|
|
echo " ${WHITE}Alt-Left/Right${RST} Prev / next tab"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Session Windows${RST}"
|
|
echo " ${WHITE}1:code${RST} ${WHITE}2:git${RST} ${WHITE}3:run${RST} ${WHITE}4:logs${RST} ${WHITE}5:help${RST} ${DIM}(this)${RST}"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Mobile Toolbar${RST}"
|
|
echo " ${DIM}Row 1:${RST} +Tab Next Prev │ ^C ^D Clr │ Esc Tab ▲ ▼"
|
|
echo " ${DIM}Row 2:${RST} Sel Paste Zoom Save │ V.Spl H.Spl Pane Kill"
|
|
echo ""
|
|
echo "${ORANGE}${UL}Notifications${RST}"
|
|
echo " ${WHITE}sethmux-notify \"msg\"${RST} Push to browser"
|
|
echo " ${WHITE}cmd | sethmux-notify${RST} Pipe output"
|
|
echo ""
|
|
echo "${GRAY} ─────────────────────────────────────────────${RST}"
|
|
echo "${GRAY} Status bar shows: cwd + git branch + time${RST}"
|
|
echo "${GRAY} Scrollback: 200K lines │ Prefix: Ctrl-A${RST}"
|
|
echo ""
|
|
}
|
|
|
|
trap draw WINCH
|
|
draw
|
|
|
|
# Read-only: consume all stdin silently, redraw on resize
|
|
while IFS= read -r -s -n 1 -t 86400 _ 2>/dev/null; do :; done
|