Skip to content

feat(tui): add opt-in Kitty key release events - #41421

Closed
ihxnnxs wants to merge 2 commits into
anomalyco:devfrom
ihxnnxs:feat/kitty-key-release-events
Closed

ihxnnxs wants to merge 2 commits into
anomalyco:devfrom
ihxnnxs:feat/kitty-key-release-events

Conversation

@ihxnnxs

@ihxnnxs ihxnnxs commented Aug 9, 2026

Copy link
Copy Markdown

Issue for this PR

Closes #37692

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

I ran into this while building opencode-voice, a local voice input plugin for OpenCode.

For hold-to-talk, the plugin needs to know when a key is released. OpenCode supports release keybindings, but users could not turn on Kitty keyboard release events in tui.json.

This PR adds an opt-in setting:

{
  "kitty_keyboard": {
    "events": true
  }
}

It is off by default because some xterm.js terminals handle release events badly.
The setting is used by both OpenCode TUI renderer paths. This makes hold-to-talk and other release-based keybindings possible in terminals with solid Kitty keyboard support, without changing the default behavior for everyone else.
How did you verify your code works?

  • Ran bun test test/config.test.tsx in packages/tui - 9 tests passed
  • Ran bun run typecheck in packages/tui
  • Ran bun run typecheck in packages/opencode
  • Ran Prettier and git diff --check
    The full pre-push check could not finish because pkg.pr.new was down and @solidjs/start could not be downloaded.
    Screenshots / recordings
    N/A. This is a TUI config and keyboard input change.
    Checklist
  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Aug 9, 2026
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.

Feel free to open a new pull request that follows our guidelines.

@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Aug 9, 2026
@github-actions github-actions Bot closed this Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

setupTerminal() never calls enableKittyKeyboard() — Kitty protocol unusable on WezTerm

1 participant