-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
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
[Feature] Send a dummy keycode to neutralize flashing modifiers in retro tap and key overrides #20992
Merged
Conversation
This file contains 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
precondition
force-pushed
the
anti_mod_flash
branch
from
May 19, 2023 20:39
1357098
to
360d3a2
Compare
I am open to other naming suggestions |
precondition
force-pushed
the
anti_mod_flash
branch
2 times, most recently
from
May 19, 2023 21:24
c7a5cd6
to
1704936
Compare
precondition
force-pushed
the
anti_mod_flash
branch
from
May 19, 2023 21:27
1704936
to
b048bc7
Compare
drashna
approved these changes
Jun 11, 2023
tzarc
approved these changes
Jul 7, 2023
jesperhellberg
pushed a commit
to jesperhellberg/qmk_firmware
that referenced
this pull request
Sep 9, 2023
…tro tap and key overrides (qmk#20992)
thismarvin
pushed a commit
to thismarvin/qmk_firmware
that referenced
this pull request
Sep 27, 2023
…tro tap and key overrides (qmk#20992)
akeep
pushed a commit
to akeep/qmk_firmware
that referenced
this pull request
Oct 2, 2023
…tro tap and key overrides (qmk#20992)
csolje
pushed a commit
to csolje/qmk_firmware
that referenced
this pull request
Oct 21, 2023
…tro tap and key overrides (qmk#20992)
autoferrit
pushed a commit
to SpaceRockMedia/bastardkb-qmk
that referenced
this pull request
Dec 8, 2023
…tro tap and key overrides (qmk#20992)
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.
Description
Certain QMK features like Retro Tap and Key Overrides must unregister a previously registered modifier before sending a certain keycode but in doing so, the OS can sometimes misinterpret the intent of the user and trigger a keyboard shortcut when seeing the tap of modifier key. Notable examples are taps of the GUI key opening the start/applications menu in many desktop environments like Windows or Gnome or taps of the left Alt key focusing the menu bar in many GUI applications. This causes problems for the users of these features as described in issue #16795.
This PR aims to solve this issue by the neutralization of those flashing modifiers achieved through the tap of a dummy, user-configurable, keycode.
To illustrate; the idea is to send a keycode like Right Control so that the OS sees the following key events when retro-tapping
LGUI_T(KC_A)
:LGUI + RCtrl is an extremely rare keyboard shortcut which is unlikely to be bound to any action, so doing so amounts to a no-op and we can thus simply send "a" with no other side-effects, just as the user intended.
All the user has to do is to define two options in
config.h
:with sensible defaults for
MODS_TO_NEUTRALIZE
already available.Types of Changes
Issues Fixed or Closed by This PR
RETRO_TAPPING
does not work withALT_T(*)
#9230Checklist