-
-
Notifications
You must be signed in to change notification settings - Fork 39.9k
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
Do not enable PERMISSIVE_HOLD when TAPPING_TERM exceeds 500ms #15674
Conversation
b008d85
to
32522a0
Compare
1cbbe50
to
840ed16
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code change looks good. But I'm not sure that this is for the best.
840ed16
to
404dbc2
Compare
Can I also remove these (would-be-)outdated comments? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other then the rebase this LGTM! Thanks.
Yes, please remove them. This doesn't need confirmation from the owners as it just rectifies the situation. |
One more request:
These configs should get |
Do we typically have to manage user config/keymaps for breaking changes? |
I would say that QMK should not break user space if it is possible. So if there is a trivial backwards compatible conversion it should be done in the PR. |
404dbc2
to
f3e9fa7
Compare
Solved in 9167f41
Solved in f3e9fa7 ~/qmk_firmware on tap_term_500 *3 ⨤7
❯ grep -c PERMISSIVE_HOLD users/wanleg/config.h keyboards/1k/keymaps/tap_dance/config.h keyboards/idobao/id67/keymaps/thewerther/config.h keyboards/handwired/onekey/config.h keyboards/handwired/ergocheap/config.h keyboards/handwired/uthol/rev3/config.h keyboards/xiudi/xd002/keymaps/tap_dance/config.h keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h keyboards/keebio/quefrency/keymaps/bjohnson/config.h keyboards/thevankeyboards/minivan/keymaps/halvves/config.h keyboards/thevankeyboards/minivan/keymaps/belak/config.h keyboards/flehrad/bigswitch/keymaps/333fred/config.h keyboards/zfrontier/big_switch/config.h layouts/community/66_ansi/xyverz/config.h keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h keyboards/massdrop/alt/keymaps/favorable-mutation/config.h users/hvp/config.h
users/wanleg/config.h:1
keyboards/1k/keymaps/tap_dance/config.h:1
keyboards/idobao/id67/keymaps/thewerther/config.h:1
keyboards/handwired/onekey/config.h:1
keyboards/handwired/ergocheap/config.h:1
keyboards/handwired/uthol/rev3/config.h:1
keyboards/xiudi/xd002/keymaps/tap_dance/config.h:1
keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h:1
keyboards/keebio/quefrency/keymaps/bjohnson/config.h:1
keyboards/thevankeyboards/minivan/keymaps/halvves/config.h:1
keyboards/thevankeyboards/minivan/keymaps/belak/config.h:1
keyboards/flehrad/bigswitch/keymaps/333fred/config.h:1
keyboards/zfrontier/big_switch/config.h:1
layouts/community/66_ansi/xyverz/config.h:1
keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h:1
keyboards/massdrop/alt/keymaps/favorable-mutation/config.h:1
users/hvp/config.h:1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for quickly implementing the changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All test are green now. This is good to go.
It also passes all the new tap hold configuration unit tests I had added in #15741 so that's extra re-insurance |
Description
Do not enable PERMISSIVE_HOLD-like behaviour when TAPPING_TERM ≥ 500ms.
This is a poorly documented obscure "feature" that's entirely unnecessary and does more harm than good. When people are testing dual-role keys like
MT()
, they need to play around with the different tap-hold option and tweak their tapping term in order to limit misfires. A lot of times, people enableIGNORE_MOD_TAP_INTERRUPT
because this is the option that is the most restrictive when it comes to selecting the hold action (desirable for a person using home row mods for example) but because they're not used to it, they get a lot of misfires. In which case, they're advised to increase the tapping term.However, some users crank it way above 500ms "just to be safe" and make it very hard to accidentally trigger a hold. That's when QMK "helpfully" enables permissive hold (despite the user not having enabled the setting in
config.h
) under their nose. Now, when testing, the user encounters even more misfires than before because permissive hold activates an additional way to trigger holds. This only serves to frustrate the users and push them away from exploiting the full capacities of the advanced tap-hold mechanics that QMK offers.Finally, this PR is not a loss of functionality because one only needs to add
#define PERMISSIVE_HOLD
to theirconfig.h
to get the behaviour if they so desire. Furthermore, you can expect this PR to free up about 55 bytes in keymaps that don't enablePERMISSIVE_HOLD
. (Everything counts on AVR)Types of Changes
Issues Fixed or Closed by This PR
Checklist