-
-
Notifications
You must be signed in to change notification settings - Fork 40.1k
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
Bilateral combinations #17715
Bilateral combinations #17715
Conversation
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.
Add an explicit example
#define BILATERAL_COMBINATIONS | ||
``` | ||
|
||
If `BILATERAL_COMBINATIONS` is defined to a value, hold times greater than that value will permit same hand combinations. For example: | ||
|
||
```c | ||
#define BILATERAL_COMBINATIONS 500 |
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.
Two different states for the same config option is probably going to make data driven config more complicated.
Nice! I recommend going through manna-harbour#29 and the issues linked from there. In particular, I suggest to:
Best of luck with the PR! |
A few notes for above, mostly on Using a keymap layer for configuration is very unlikely to be accepted as this does not align with the existing configuration points. Something like swap hands is probably the closer, but the existing |
The current implementation was definitely a hack, but |
Co-authored-by: Albert Y <[email protected]>
Co-authored-by: Albert Y <[email protected]>
I very much like the concept of Bilateral Combinations and Positional Hold and it would be fantastic to add some form of this to QMK core. I wrote a userspace library Achordion that does something similar and have some thoughts regarding interface. I believe Bilateral Combinations' opposite hands rule for what counts as a hold is a great default. However, it is practical to make a few tweaks on top of it:
Those first two points would involve customization based on the tap-hold key + other key chord, not just the tap-hold key alone. Achordion facilitates these chord-adaptive customizations with a callback with the signature bool achordion_chord(uint16_t tap_hold_keycode,
keyrecord_t* tap_hold_record,
uint16_t other_keycode,
keyrecord_t* other_record); where returning Some other thoughts:
|
Thank you for your contribution! |
The "Flashing Mods" issue should be fixed in my PR for Miryoku: manna-harbour#48 |
…ations-develop Bilateral combinations * https://github.com/qmk/qmk_firmware: Update docs/tap_hold.md Update docs/tap_hold.md cleanup example for `get_enable_bilateral_combinations_per_key` “bilateral_combinations_left” should be weak. For testing and for keyboards to override format docs per key Bilateral combinations copied in code and it compiles. WIP: include quantam & main implementation
Thank you for your contribution! |
Thank you for your contribution! |
guys, just a quick question, there is no follow up to this pr right? I mean, I can still use it (rebasing it in my fork) but wanted to know if you were discussing the development for bilateral combinations to go in a specific direction or not. |
@grota right, this PR has stalled, unfortunately. As @zvecr said (and I agree), the main problem was:
If a new PR in this direction is made, it would be better to follow how swap hands configuration works. As an alternative to modifying core, you might be interested in Achordion. It is a userspace library with behavior similar to Bilateral Combinations. |
Description
This PR brings @manna-harbour 's Bilateral Combinations feature. I also implemented Per Key Bilateral Combinations, as requested by @cfarvidson and others. I have updated the docs as well.
I tried to implement unit tests, and the trace's match what I expected. However, the expectation macros couldn't be convinced to pass. If you would like to see the progress tests for this feature please see my branch at https://github.com/FullQueueDeveloper/qmk_firmware/tree/bilateral_combinations_tests
Types of Changes
Issues Fixed or Closed by This PR
Checklist