https://gitlab.synchro.net/main/sbbs/-/commit/5b784e694db6d0eb5f47ba03
Modified Files:
src/doors/syncdoom/README.md m_menu.c syncdoom.c src/doors/syncduke/README.md
Log Message:
syncdoom: kitty keyboard protocol -- true key-up, hold-to-move, native turn
Port SyncDuke's kitty keyboard support to SyncDOOM. On a terminal that speaks the
kitty keyboard protocol (e.g. Contour) the door queries support at startup (CSI?u),
pushes the progressive-enhancement flags on the reply (CSI>11u), and pops them on
exit -- so it gets explicit key press/repeat/release instead of faking key-up with a
timeout. Gated: terminals that don't answer keep the existing key-up-synthesis scheme, byte-for-byte unchanged.
Under kitty:
- parse_byte() handles the CSI-u key events plus the disambiguated F-key/nav forms
Contour sends (F1=CSI P, F2=CSI Q, F3=13~, F4=CSI S, F5=15~, F6=17~; Home=CSI H,
End=CSI F; numpad Private-Use-Area codepoints incl. numpad Enter). kitty_dispatch()
routes door hotkeys (F4 tier-cycle, Ctrl-S/T/O/U/P) to key_seen() on press only and
game keys to explicit keyq_push down/up -- bypassing the s_active grace machinery,
so movement holds and Doom's native turn-accel ramp runs.
- The Ctrl-S stats strip shows "kbd:kitty".
- Options shows the now-moot TAP/HOLD/TURN/FAST-TURN knobs as "NATIVE" (the byte-path
key-feel tuning does nothing with real key-up).
- Home/End in a menu jump to the first/last item.
Also document the kitty behavior in both door READMEs. Validated on Contour; SyncTERM and other terminals unaffected.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net