• src/doors/syncdoom/README.md m_menu.c syncdoom.c src/doors/syncduke/RE

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jun 28 23:51:28 2026
    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