Skip to content

feat(terminal)!: pointer reporting, synchronized updates and the kitty keyboard protocol - #40

Merged
clearloop merged 7 commits into
mainfrom
dev
Sep 23, 2026
Merged

clearloop merged 7 commits into
mainfrom
dev

Conversation

@clearloop

Copy link
Copy Markdown
Member

Released as 0.1.24.

  • Emulator::mouse_mode is what a program wants done with the pointer — 1000, 1002, 1003, the 1006/1005 encodings and 1007 alternate scroll — and view::mouse_bytes turns an action and a cell into the report, answering None where the event is the user's so the host runs its own selection instead
  • Emulator::render_hold serves the grid as it stood when mode 2026 went on; the emulator has no clock, so release_hold and HOLD_TIMEOUT are what a host arms against a program that dies mid-frame
  • The kitty keyboard protocol: Emulator::keyboard_mode reads back the pushed flags and view::keystroke_bytes encodes against them — CSI u for flags 1 and 8, event types on flag 2, text on flag 16, the shifted key on flag 4, and F3 moved off its legacy CSI 1;<mod>R
  • kitty::Display carries c, r and C, so a program can state a cell extent outright and draw over what is there without reserving rows
  • A placement anchors every cell of its top row, so text written over an image's left no longer takes it off the grid
  • Light glass shows the backdrop it refracts: a third of the tint traded for gain, holding the tint.a / (1 - gain) product SurfaceSpec::flat reads so a build with no lens keeps its white panel

Breaking, with migrations in changelog.json:

  • view::keystroke_bytes takes a KeyboardMode, a KeyEvent and the platform's KeyLayout in place of the app_cursor flag
  • kitty::Store::apply answers Option<kitty::Display>
  • bezel-gpui 0.3.11, the release that reports KeyLayout

Fixed: a kitty image inside a synchronized update landing under the frame's own text (emulator::NoSync), and a named key with a modifier encoding nothing — ctrl-left is now CSI 1;5D.

cargo nextest run -p bezel-terminal -p bezel-theme: 169 passed.

@cla-bot cla-bot Bot added the cla-signed Contributor has signed the CLA label Sep 23, 2026
@clearloop
clearloop merged commit a5cafe6 into main Sep 23, 2026
5 checks passed
@clearloop
clearloop deleted the dev branch September 23, 2026 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed Contributor has signed the CLA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant