-
-
Notifications
You must be signed in to change notification settings - Fork 2.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
feat(behaviors): Adding require-prior-idle-ms for combos and hold-taps #1387
Conversation
I've now pushed a change such that he old |
Remove global-quick-tap from shift
Remove global-quick-tap from shift
Remove global-quick-tap from shift
Remove global-quick-tap from shift
Remove global-quick-tap from shift
Wanted to drop a note saying this has been working perfectly for me for both combos and hold-taps for the last couple of months of testing. If the idea makes sense to contributors, maybe we can add docs? |
Yah I'm sorry I've let this go stale, I moved and started a new job hehe. If someone wants to write docs they can feel free to PR my branch, otherwise I should be able to get to it next week. |
app/tests/hold-tap/tap-unless-interrupted/6-global-quick-tap/1-basic/native_posix_64.keymap
Outdated
Show resolved
Hide resolved
code lgtm, some docs are needed before we can merge. I left a minor comment on a comment :) |
Same here, would be great to see this merged. |
hi guys, what is the current status of this merge? Looks like no one here's against it, can we expect it to be approved any time soon? |
This was on pause for a bit while we decided on better naming. Many ideas were thrown around on discord but I'm leaning towards |
I have been using this for a few months and it’s astonishing how well it works. It makes homerow mods actually usable. And I think this will give users a huge reason to pick zmk over qmk. I believe zmk state of the firmware blog post is “due” soon. And it would probably be a great opportunity to advertise this feature and “Urob-style homerow mods” in it. So, perhaps it would be a good idea to merge this before the state of the firmware post. |
Okay, renaming done, should be ready for a final review @petejohanson @caksoylar. |
Detaching the global-quick-tap functionality from the quick-tap term. This makes way for two improvements: 1. This functionality can be added to combos under a unified name 'global-quick-tap-ms'. 2. This allows users to set a lower term for the 'global-quick-tap' (typically ~100ms), and a higher term for the regular quick-tap (typically ~200ms) This deprecates the global-quick-tap option, however if it is set, the quick-tap-ms value will be copied to global-quick-tap-ms.
This brings the 'global-quick-tap' functionality to combos by filtering out candidate combos that fell within their own quick tap term. I also replaced `return 0` with `return ZMK_EV_EVENT_BUBBLE` where appropriate. (I assume this was done in past as it is similar to errno returning, but being that this is to signify an event type I find this more clear)
Co-authored-by: Cem Aksoylar <[email protected]>
Renaming global-quick-tap-ms to require-prior-idle.
421d3bb
to
f6aa320
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.
Thanks for the update! A few nitpicks on docs, but otherwise LGTM docs-wise.
(Not doing a "Github approval" since that should come from a non-docs maintainer.)
Co-authored-by: Cem Aksoylar <[email protected]>
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.
One minor nitpick as well, but otherwise LGTM.
Okay, I realized my old sweep for global quick tap must have fallen short so I did a better search and caught a few more outliers. Please review the latest commit @petejohanson, I also ended up changing |
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 the work on this and your patience. LGTM!
Detaching the global-quick-tap functionality from quick-tap term, and implementing it for both combos and hold-taps under the new option
require-prior-idle-ms
.This constitutes a breaking change for users keymaps in thatThis deprecates theglobal-quick-tap
will no longer be an option. I'm not sure what the protocol is when doing such refactors, but I think it is beneficial in the long run for two reasons:global-quick-tap
option, however it is backwards compatible in that if it is set it will copy thequick-tap-ms
to therequire-prior-idle-ms
.There are two reasons for these changes;
This functionality can be added to combos under the new unified name
require-prior-idle-ms
.This allows users to set a lower term for the 'global-quick-tap' (now
require-prior-idle-ms
) functionality (typically ~100ms), and a higher term for the regular quick-tap (typically ~200ms). This means the regular quick-tap is easier to hit, while still allowing the benefits of disabling the hold-taps during fast typing.PR Progress:
require-prior-idle-ms
rather thanglobal-quick-tap
require-prior-idle-ms
functionality to combos