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(combos): initial implementation #504
Conversation
d327c60
to
30712b3
Compare
7b093c1
to
1a50fe0
Compare
@joelspadin thanks for your comments! I've addressed each of them. |
0c6b037
to
b678f65
Compare
rebased on 2.4.0 |
80b3a01
to
5d4668c
Compare
|
5d4668c
to
a5ef17b
Compare
The issue between hold-taps and combos has been fixed, I'll merge in that commit after review. |
@petejohanson Can you review soon? I know quite a few people are really looking forward to combos. The branch has been tested by various people (@tominabox1, myself, various others in #testing). |
a5ef17b
to
013f865
Compare
@okke-formsma A comment on the DT format: This is a scenario where I I would likely use the DT bindings
It avoids duplication, and leaves the DT more focused. Will review the code soon, but this stuck out as a user experience issue. |
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.
A few cursory thoughts. Thanks!
app/src/behaviors/behavior_combo.c
Outdated
|
||
struct combo_t { | ||
int32_t key_positions[CONFIG_ZMK_BHV_COMBO_MAX_KEYS_PER_COMBO]; | ||
int32_t key_position_len; |
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.
Instead, can we fill the rest with MAX to avoid extra storage per combo?
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.
This prevents looping over the items to count in other places, so I think it's worth it.
e5b46ce
to
b029590
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.
Let's do this! Plenty of end user testing on this, code is reasonable architecture and self contained, and can easily be put behind one Kconfig flag later as needed.
An implementation of combos for #45
This has been tested by TJ and others for a while, so I think it's pretty good.
example of a keymap using combos:
Docs are still to do.