Skip to content

Optionaly recognize modifyOtherKey (ctrl-, ctrl-shift-)#2066

Draft
Carreau wants to merge 1 commit intoprompt-toolkit:mainfrom
Carreau:modifyOtherKey-state-1
Draft

Optionaly recognize modifyOtherKey (ctrl-, ctrl-shift-)#2066
Carreau wants to merge 1 commit intoprompt-toolkit:mainfrom
Carreau:modifyOtherKey-state-1

Conversation

@Carreau
Copy link
Copy Markdown
Contributor

@Carreau Carreau commented Apr 15, 2026

As far as I can tell, many terminal support this,
and it allows (when enabled) to distinguish some modifier that are otherwise impossible to detect.

In particular there is often a request in IPython to distinguish Ctrl-Enter.

This should be 100% backward compatible.

Ctrl-Shift- is not added as many terminal don't actually support it.

This is gated by a context manager modify_other_keys that is widely supported.

Some discussion I found about why / or why not :

https://github.com/ghostty-org/ghostty/issues/242

related to ipython/ipython#13879


I tried state 2 but this would be much more invasive to detect all the keys, any anyway if we go further I think support for https://sw.kovidgoyal.net/kitty/keyboard-protocol/ directly will be good as there is extensive documentation on how to detect it and have progressive enhancement.

Leaving as draft for now

As far as I can tell, many terminal support this,
and it allows (when enabled) to distinguish some modifier that
are otherwise impossible to detect.

In particular there is often a request in IPython to distinguish
Ctrl-Enter.

This _should_ be 100% backward compatible.

Ctrl-Shift- is _not_ added as many terminal don't actually support it.

This is gated by a context manager `modify_other_keys` that is widely
supported.

Some discussion I found about why / or why not :

`https://github.com/ghostty-org/ghostty/issues/242`
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.

1 participant