feat: support extended keyboard enhancements#1626
Merged
aymanbagabas merged 1 commit intomainfrom Apr 7, 2026
Merged
Conversation
This adds support for the Kitty keyboard protocol's extended enhancements, allowing applications to request that the terminal report additional information about key events, such as whether they're part of a repeat sequence, alternate key values, and associated text. Supersedes: #1622 Fixes: #1621 Fixes: #1623
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1626 +/- ##
==========================================
- Coverage 56.09% 55.76% -0.34%
==========================================
Files 25 25
Lines 1287 1300 +13
==========================================
+ Hits 722 725 +3
- Misses 481 489 +8
- Partials 84 86 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
andreynering
approved these changes
Mar 16, 2026
|
@aymanbagabas @andreynering the PR seems stalled happy to take this over or assist if needed. |
Contributor
Author
|
Thank you @rit3sh-x for the gentle ping. This is going to be released soon in the next version of Bubble Tea v2. You can use |
dgalanberasaluce
pushed a commit
to dgalanberasaluce/maximus-cli
that referenced
this pull request
Apr 30, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [charm.land/bubbles/v2](https://github.com/charmbracelet/bubbles) | `v2.0.0` → `v2.1.0` |  |  | | [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) | `v2.0.2` → `v2.0.6` |  |  | | [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) | `v2.0.2` → `v2.0.3` |  |  | | [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) | `v1.14.37` → `v1.14.44` |  |  | --- ### Release Notes <details> <summary>charmbracelet/bubbles (charm.land/bubbles/v2)</summary> ### [`v2.1.0`](https://github.com/charmbracelet/bubbles/releases/tag/v2.1.0) [Compare Source](charmbracelet/bubbles@v2.0.0...v2.1.0) ### Shrink ’n’ grow your textareas The update adds a new feature to automatically resize your `textarea` vertically as its content changes. ```go ta := textarea.New() ta.DynamicHeight = true // Enable dynamic resizing ta.MinHeight = 3 // Minimum visible rows ta.MaxHeight = 10 // Maximum visible rows ta.MaxContentHeight = 20 // Maximum rows of content ``` Piece of cake, right? <p><img width="500" src="https://github.com/user-attachments/assets/6f990de7-833d-4742-b3de-c87ffff8b77e" /></p> Enjoy! 💘 #### Changelog ##### New! - [`f1daacf`](charmbracelet/bubbles@f1daacf): feat(textarea): dynamic height ([#​910](charmbracelet/bubbles#910)) ([@​meowgorithm](https://github.com/meowgorithm)) *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). </details> <details> <summary>charmbracelet/bubbletea (charm.land/bubbletea/v2)</summary> ### [`v2.0.6`](https://github.com/charmbracelet/bubbletea/releases/tag/v2.0.6) [Compare Source](charmbracelet/bubbletea@v2.0.5...v2.0.6) This release fixes an issue with how Bubble Tea handled wide characters. Before, a wide character might be skipped or cause an infinite loop causing the CPU to spike. See [`fdcd0cf`](charmbracelet/bubbletea@fdcd0cf) and [charmbracelet/ultraviolet#109](charmbracelet/ultraviolet#109) for more details. *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). ### [`v2.0.5`](https://github.com/charmbracelet/bubbletea/releases/tag/v2.0.5) [Compare Source](charmbracelet/bubbletea@v2.0.4...v2.0.5) A small release to remove accidental unwanted debug log file. See [`1ed724a`](charmbracelet/bubbletea@1ed724a) and [charmbracelet/ultraviolet@`b516641`](charmbracelet/ultraviolet@b516641) for details. *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). ### [`v2.0.4`](https://github.com/charmbracelet/bubbletea/releases/tag/v2.0.4) [Compare Source](charmbracelet/bubbletea@v2.0.3...v2.0.4) This release includes a small fix related to width calculation in [x/ansi](https://github.com/charmbracelet/x/tree/main/ansi). See [`c788fe9`](charmbracelet/bubbletea@c788fe9) and [charmbracelet/x@`6921c75`](charmbracelet/x@6921c75) for more details. *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). ### [`v2.0.3`](https://github.com/charmbracelet/bubbletea/releases/tag/v2.0.3) [Compare Source](charmbracelet/bubbletea@v2.0.2...v2.0.3) ### Extra Extra Extended Keyboard Enhancements! This release adds support for the full set of Keyboard Enhancements. Now you can enable any enhancements on top of the default disambiguate one. ```go func (m model) View() tea.View { var v tea.View v.KeyboardEnhancements.ReportAlternateKeys = true v.KeyboardEnhancements.ReportAllKeysAsEscapeCodes = true return v } ``` ### Smarter Renderer We also fixed a few renderer related bugs and made the Cursed Renderer smarter. Now, we always reset the terminal tab stops for the Bubble Tea program process context. People using `tabs -N` in their shell profiles shouldn't be affected. See the full changelog below. #### Changelog ##### New! - [`05df5ae`](charmbracelet/bubbletea@05df5ae): feat: support extended keyboard enhancements ([#​1626](charmbracelet/bubbletea#1626)) ([@​aymanbagabas](https://github.com/aymanbagabas)) ##### Fixed - [`a3d7807`](charmbracelet/bubbletea@a3d7807): fix(ci): only run build-examples on non-dependabot PRs ([@​aymanbagabas](https://github.com/aymanbagabas)) - [`7df1e65`](charmbracelet/bubbletea@7df1e65): fix(examples): migrate imports to charm.land for the glamour example ([#​1642](charmbracelet/bubbletea#1642)) ([@​mhdna](https://github.com/mhdna)) - [`ee06e98`](charmbracelet/bubbletea@ee06e98): fix(examples): resolve nil pointer dereference ([#​1663](charmbracelet/bubbletea#1663)) ([@​mattpcaswell](https://github.com/mattpcaswell)) - [`ac355fe`](charmbracelet/bubbletea@ac355fe): fix(renderer): restore tab stops if hard tabs are enabled ([#​1677](charmbracelet/bubbletea#1677)) ([@​aymanbagabas](https://github.com/aymanbagabas)) - [`729f05c`](charmbracelet/bubbletea@729f05c): fix: add missing signal.Stop in suspendProcess to prevent signal channel leak (Closes [#​1673](charmbracelet/bubbletea#1673)) ([#​1674](charmbracelet/bubbletea#1674)) ([@​kuishou68](https://github.com/kuishou68)) ##### Docs - [`bbe4faf`](charmbracelet/bubbletea@bbe4faf): docs(example): add textarea dynamic height example ([#​1639](charmbracelet/bubbletea#1639)) ([@​meowgorithm](https://github.com/meowgorithm)) - [`e19d255`](charmbracelet/bubbletea@e19d255): docs: fix README wording ([#​1624](charmbracelet/bubbletea#1624)) ([@​Rohan5commit](https://github.com/Rohan5commit)) ##### Other stuff - [`65c3978`](charmbracelet/bubbletea@65c3978): ci: sync golangci-lint config ([#​1556](charmbracelet/bubbletea#1556)) ([@​github-actions](https://github.com/github-actions)\[bot]) *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). </details> <details> <summary>charmbracelet/lipgloss (charm.land/lipgloss/v2)</summary> ### [`v2.0.3`](https://github.com/charmbracelet/lipgloss/releases/tag/v2.0.3) [Compare Source](charmbracelet/lipgloss@v2.0.2...v2.0.3) #### Changelog ##### Fixed - [`472d718`](charmbracelet/lipgloss@472d718): fix: Avoid background color query hang ([#​636](charmbracelet/lipgloss#636)) ([@​jedevc](https://github.com/jedevc)) ##### Docs - [`9e39a0a`](charmbracelet/lipgloss@9e39a0a): docs: fix README typo ([#​629](charmbracelet/lipgloss#629)) ([@​Rohan5commit](https://github.com/Rohan5commit)) - [`cd93a9f`](charmbracelet/lipgloss@cd93a9f): docs: fix tree comment typo ([#​634](charmbracelet/lipgloss#634)) ([@​Rohan5commit](https://github.com/Rohan5commit)) *** <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@​charmcli), [Bluesky](https://bsky.app/profile/charm.land). </details> <details> <summary>mattn/go-sqlite3 (github.com/mattn/go-sqlite3)</summary> ### [`v1.14.44`](mattn/go-sqlite3@v1.14.43...v1.14.44) [Compare Source](mattn/go-sqlite3@v1.14.43...v1.14.44) ### [`v1.14.43`](mattn/go-sqlite3@v1.14.42...v1.14.43) [Compare Source](mattn/go-sqlite3@v1.14.42...v1.14.43) ### [`v1.14.42`](mattn/go-sqlite3@v1.14.41...v1.14.42) [Compare Source](mattn/go-sqlite3@v1.14.41...v1.14.42) ### [`v1.14.41`](mattn/go-sqlite3@v1.14.40...v1.14.41) [Compare Source](mattn/go-sqlite3@v1.14.40...v1.14.41) ### [`v1.14.40`](mattn/go-sqlite3@v1.14.39...v1.14.40) [Compare Source](mattn/go-sqlite3@v1.14.39...v1.14.40) ### [`v1.14.39`](mattn/go-sqlite3@v1.14.38...v1.14.39) [Compare Source](mattn/go-sqlite3@v1.14.38...v1.14.39) ### [`v1.14.38`](mattn/go-sqlite3@v1.14.37...v1.14.38) [Compare Source](mattn/go-sqlite3@v1.14.37...v1.14.38) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43My4yIiwidXBkYXRlZEluVmVyIjoiNDMuNzMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Reviewed-on: https://forgejo.internal/forgejo_admin/maximus/pulls/8 Co-authored-by: Renovate Bot <renovatebot@forgejo.internal> Co-committed-by: Renovate Bot <renovatebot@forgejo.internal>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds support for the Kitty keyboard protocol's extended enhancements, allowing applications to request that the terminal report additional information about key events, such as whether they're part of a repeat sequence, alternate key values, and associated text.
Supersedes: #1622
Fixes: #1621
Fixes: #1623