Buttons were sending literal 'n'/'p' instead of Ctrl-A+n/p because
the hex escape decode was failing. Now uses real control characters
in data-k attributes and sends via triggerDataEvent() which hooks
directly into ttyd's websocket transport.
All Ctrl+Shift shortcuts mapped to match kitty defaults:
- Ctrl+Shift+T/W/Left/Right for tab management
- Ctrl+Shift+Enter for splits, ]/[ for pane cycling
- Ctrl+Shift+C/V for copy/paste, H for scrollback pager
- Ctrl+Shift+1-9 for goto tab, F11 for fullscreen
- Dvorak extras and Alt shortcuts preserved alongside
- 200K scrollback, vi-mode copy, copy-on-select
- Ctrl-A S captures pane to ~/logs/, Ctrl-A L toggles live logging
- Status bar shows git branch + working directory
- Pre-built session: code/git/run/logs windows
- Aggressive resize + focus events for multi-device switching
- Toolbar: added Paste (clipboard), Zoom (pane fullscreen), Save (capture)
- All new windows inherit current working directory
- Toolbar split into 2 rows for more buttons without clutter