Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend the keyboard escape sequence handling code to have a "we don't handle this" registry #3742

Closed
davep opened this issue Nov 23, 2023 · 1 comment · Fixed by #3800
Closed
Assignees
Labels
enhancement New feature or request Task

Comments

@davep
Copy link
Contributor

davep commented Nov 23, 2023

As part of the findings during #3440 we ran into quite a lot of what seem to be niche escape sequences, particular to one or two terminal emulators, and/or to one or two environments. Armed with these findings we should update the escape sequence parsing code such that it will swallow the sequence, logging that it did to the developer console.

This will make for a cleaner and more responsive application if a user hits a particular key, and it will also give us a list of such keys in the code (so if commented well, will provide a useful reference).

@davep davep added enhancement New feature or request Task labels Nov 23, 2023
@davep davep self-assigned this Nov 23, 2023
davep added a commit to davep/textual that referenced this issue Dec 4, 2023
But when we do so, ensure that we log what sequence was ignored if the key
driver logging is enabled.

The core requirement for Textualize#3742.
@davep davep linked a pull request Dec 4, 2023 that will close this issue
willmcgugan pushed a commit that referenced this issue Jan 8, 2024
* Make ignoring keys a silent operation

But when we do so, ensure that we log what sequence was ignored if the key
driver logging is enabled.

The core requirement for #3742.

* Start a proper ignore section in the dictionary of sequences

And by "proper ignore section" I simply mean: have the sequences we want to
ignore all gathered together in a really obvious location, and with some
sort of explanation.

* Simplify opt+§ in WezTerm on macOS

* Improve the wezterm opt mappings

This brings them more in line with other terminals I've tested.

* Tidy up the explanation for the WezTerm mappings

* Ignore various ctrl-cmd- sequences from kitty

* Fix a couple of incorrectly-copied sequences

* Transform Ctrl+§ into 0 under kitty

Most (all?) other terminals on macOS do this anyway.

* Tweak some wording

* Add Shift-F11 and Shift-F12 for rxvt

* Switch to using a special value for ignored sequences

Rather than use the pre-existing convention of a tuple that contains
Keys.Ignore, which *could* imply that a sequence maps to a set of keys that
happens to include Key.Ignore, but isn't exclusive to just that, here we
swap over to using a single special value for an ignored sequence.

* Swap to using a value as a flag, not a type

#3800 (review)
Copy link

github-actions bot commented Jan 8, 2024

Don't forget to star the repository!

Follow @textualizeio for Textual updates.

willmcgugan pushed a commit that referenced this issue Jan 11, 2024
* Make ignoring keys a silent operation

But when we do so, ensure that we log what sequence was ignored if the key
driver logging is enabled.

The core requirement for #3742.

* Start a proper ignore section in the dictionary of sequences

And by "proper ignore section" I simply mean: have the sequences we want to
ignore all gathered together in a really obvious location, and with some
sort of explanation.

* Simplify opt+§ in WezTerm on macOS

* Improve the wezterm opt mappings

This brings them more in line with other terminals I've tested.

* Tidy up the explanation for the WezTerm mappings

* Ignore various ctrl-cmd- sequences from kitty

* Fix a couple of incorrectly-copied sequences

* Transform Ctrl+§ into 0 under kitty

Most (all?) other terminals on macOS do this anyway.

* Tweak some wording

* Add Shift-F11 and Shift-F12 for rxvt

* Switch to using a special value for ignored sequences

Rather than use the pre-existing convention of a tuple that contains
Keys.Ignore, which *could* imply that a sequence maps to a set of keys that
happens to include Key.Ignore, but isn't exclusive to just that, here we
swap over to using a single special value for an ignored sequence.

* Swap to using a value as a flag, not a type

#3800 (review)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Task
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant