aboutsummaryrefslogtreecommitdiff
path: root/src/input
AgeCommit message (Collapse)Author
2026-09-28feat: support multiple prefix keys (#4653)JJ Liebig
* feat: support multiple prefix keys keys.prefix accepts an array in addition to a single string so one config can define several prefix keys. Every configured prefix enters the same prefix mode, and the help panel lists them all. Published keybinding profiles keep the primary prefix as a scalar and carry the rest in an optional extra_prefixes field so older clients keep working with the primary prefix. * fix: reject an empty prefix list on reload An explicitly empty keys.prefix array now stays empty through config parsing so validation rejects it and a reload keeps the current keybindings instead of silently falling back to ctrl+b.
2026-09-25fix: preserve shift on ctrl+shift+letter for legacy panes (#4597)Ainesh Chatterjee
Panes whose app has not enabled the kitty keyboard protocol received ctrl+shift+letter as the same C0 byte as ctrl+letter. Encode the chord as CSI-u instead, matching Ghostty's legacy encoder. refs #4581 Co-authored-by: ain3sh <ainesh.chatterjee@gmail.com>
2026-09-19feat: add configurable pane screen and scrollback clearing (#4383)Can Celik
2026-09-14fix: map pixel mouse by integer cell pitch (#4140)JJ Liebig
refs #3295
2026-09-13fix(input): accept parameterized CSI-tilde F1-F4 keys (#4067)JJ Liebig
Terminals such as foot send F1-F4 as parameterized CSI-tilde sequences (for example F3 as `\x1b[13;1:1~`). `parse_xterm_modified_special_sequence` mapped codes 15-24 but not 11-14, so these presses were dropped before keybindings saw them. Map 11-14 to F1-F4, matching the unmodified `\x1b[11~`..`\x1b[14~` aliases already accepted. refs #1809
2026-09-13fix: recognize kitty CSI-u codepoints for F1 through F12 (#2378)Kakumanu Ashok Reddy
Codepoints 57364-57375 (F1-F12) were missing from the kitty-protocol codepoint table, so terminals that send function keys as full CSI-u sequences (e.g. Ghostty, which enables the kitty keyboard protocol by default) had those keys silently dropped. Confirmed live against a running herdr session: injecting the raw F3/F4 codepoint sequences did nothing before this fix and correctly triggered previous_tab/next_tab after. refs #1809 Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-13fix(input): preserve super-modified pane keys (#4044)akbash
refs #3710 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-12fix: suppress Windows dead-key fallback characters in remote panes (#3972)akbash
refs #3948 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-10fix(input): accept WezTerm control key reports (#3592)akbash
* fix(input): accept WezTerm control key reports refs #3589 * fix(input): preserve WezTerm tab and escape reports refs #3589 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-03fix(windows): preserve ctrl+slash key identity (#3578)JJ Liebig
refs #2954
2026-09-02fix(windows): preserve dead-key composition in kitty panes (#3548)akbash
refs #3546 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-01fix(windows): preserve native pane key identity (#3503)JJ Liebig
2026-09-01refactor: render the shell in the client (#3487)Can Celik
* feat: add opt-in client-rendered shell * feat: add client-owned shell mouse controls * feat: complete client-owned shell chrome * feat: add client-owned shell settings and notifications * feat: run client shell custom commands * feat: render popup terminals in client shell * feat: add client-owned scrollback and copy mode * fix: preserve client worktree trust defaults * feat: render startup diagnostics in client shell * feat: render onboarding in client shell * feat: render product announcements in client shell * feat: render release notes in client shell * feat: render mobile switcher in client shell * feat: render kitty graphics in client shell * fix: preserve client shell lifecycle coherence * refactor: route client shell commands through endpoint connections * refactor: make the client-rendered shell the default * refactor: remove monolithic launch mode * refactor: complete client-rendered shell cutover * perf: retain client pane surface updates * perf: scale retained pane surface updates * perf: remove remote pane input latency * test: make client shell checks platform-independent * fix: prevent client timer starvation * test: fix client shell platform gates * test: accept retained surfaces in cross-area checks * test: make client mode assertions platform-neutral * fix: badge only outdated integrations
2026-08-29fix: handle associated text on special keys (#3350)Can Celik
refs #3328
2026-08-23fix(windows): preserve non-us shifted text (#3055)Can Celik
* fix(windows): preserve non-us shifted text refs #3045 * fix(windows): retain shifted key repeat lifecycle refs #3045
2026-08-19fix(perf): eliminate redundant terminal wake work (#2962)Can Celik
* fix(perf): eliminate redundant terminal wake work * fix(perf): harden release benchmark gate * test(perf): strengthen performance guardrails
2026-08-18fix: preserve macOS IME commits in report-all mode (#2947)Can Celik
2026-08-09fix(input): preserve alt-prefixed control keys (#2543)Can Celik
refs #2514
2026-08-09feat(graphics): add direct pane frame streaming (#2523)Can Celik
* feat(graphics): add direct pane frame streaming * feat(graphics): expose pane visibility * test(graphics): preserve legacy terminal image output * fix(graphics): harden streaming lifecycle * fix(input): preserve mouse releases outside panes
2026-08-07fix(input): preserve shift in kitty alternate reports (#2479)Can Celik
refs #2435
2026-08-01fix(input): decode 0x1f as Ctrl+_ not Ctrl+- per ASCII standard (#2165)serhat dolmaci
* fix(input): decode 0x1f as Ctrl+_ not Ctrl+- per ASCII standard refs #2164 * fix(input): update control-byte matrix test for 0x1f -> Ctrl+_
2026-08-01fix(input): preserve native key lifecycle across routing (#2142)Can Celik
refs #2077 Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-07-30fix: preserve kitty associated text (#2051)akbash
refs #2020 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-26fix: support non-us shifted keybindings (#1876)Can Celik
* fix: support non-us shifted keybindings refs #1870 * docs: require current pull request base
2026-07-23fix: preserve kitty printable key releasesOgulcan Celik
refs #1746
2026-07-14fix: preserve associated emoji input (#1410)akbash
refs #1404 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-07fix: send shifted punctuation as text in kitty modeOgulcan Celik
refs #1105
2026-07-07fix: preserve alt-shift letters (#1102)akbash
refs #1088 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-06fix: preserve shifted punctuation for alt legacy input (#1076)akbash
refs #1066 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-02fix: preserve windows backspace inputOgulcan Celik
refs #907 refs #920
2026-06-28fix: encode ctrl slash as ctrl underscoreOgulcan Celik
refs #847
2026-06-25fix: preserve alacritty input on windowsOgulcan Celik
refs #792
2026-06-24fix: prevent release key fallback from doubling inputOgulcan Celik
refs #769
2026-06-15fix: handle kitty keypad inputOgulcan Celik
refs #570
2026-06-15fix: accept alternate f1-f4 key sequencesOgulcan Celik
refs #574
2026-06-08fix: handle application keypad inputOgulcan Celik
refs #493
2026-06-07feat: add native windows beta supportOgulcan Celik
2026-05-28fix: preserve live handoff terminal stateOgulcan Celik
2026-05-21refactor: separate server client boundariesOgulcan Celik
2026-05-19fix: preserve modified enter inputOgulcan Celik
refs #168
2026-05-18fix: preserve alt backspace in panes (#165)kangal-bot
refs #155 Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-14fix(input): scroll pane scrollback with pageup/pagedown and parse enhanced ↵Ogulcan Celik
tilde sequences
2026-05-12test: add ime input regressionsOgulcan Celik
2026-04-22chore: remove unused test importsOgulcan Celik
2026-04-21feat: add persistent server-client sessionsCan Celik
Make herdr persistent by default. Launching herdr now starts or reattaches to a background session server. Clients can detach and reattach while panes and agent processes keep running. Session mode now supports multi-client attach, auto-detect startup, and a thin-client/headless-server split. This also refactors the large app, ui, input, pane, config, workspace, and persistence modules into smaller focused submodules, while preserving behavior and colocating tests with the code they exercise. Upgrade notes: - persistence mode is now the default - in-app quit detaches the current client instead of stopping the server - use `herdr server stop` to stop the background session - use `--no-session` for the old single-process behavior - default socket paths now live under the config directory
2026-04-14fix unify app key normalization for enhanced keyboard reportingOgulcan Celik
2026-04-13fix input encoding for ctrl+letter in kitty modeOgulcan Celik
2026-04-08Merge pull request #9 from Edmund-a7/masterCan Celik
fix: support IME input for Chinese and other UTF-8 characters
2026-04-07fix: support IME input for Chinese and other UTF-8 charactersacumen7
Phase 1: UTF-8 encoding support - Modified encode_text_input() to handle characters without modifiers - Added unit tests for Chinese character encoding Phase 2: IME composition support - Removed REPORT_ALL_KEYS_AS_ESCAPE_CODES keyboard flag - Prevents keyboard protocol from interfering with IME - Allows digit keys to be captured by input method for candidate selection Fixes issue where IME input was not working properly. Supports Chinese, Japanese, Korean, and other UTF-8 input methods. Maintains compatibility with all existing features. Tested: - All 388 unit tests pass - Chinese IME input with pinyin works correctly - All navigate mode shortcuts work normally - All terminal applications work normally
2026-04-07fix: preserve lf in raw terminal inputOgulcan Celik