-
-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Add Compose Onboard Feature #8359
Conversation
Just a heads up, the UCIS method does something like this, but explicitly for unicode type stuff. It's not as customizable, where this is somewhere between UCIS and leader keys. |
Thank you for your contribution! |
I rebased it onto master to resolve merge conflicts in Is there anything else missing that blocks a review and possible merge? |
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.
Haven't fully reviewed this code, but here's what I have so far:
|
||
|Key |Aliases |Description | | ||
|--------------------|-----------|-----------------------------------------| | ||
|`KC_COMPOSE_ONBOARD`|`KC_COMPOB`|Begins Composing directly on the keyboard| |
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.
|`KC_COMPOSE_ONBOARD`|`KC_COMPOB`|Begins Composing directly on the keyboard| | |
|`KC_COMPOSE_ONBOARD`|`KC_CMOB`|Begins Composing directly on the keyboard| |
We like these keycode aliases to be seven characters or less, when possible.
Also, this entire section should be moved up in the document to be between the Bluetooth and Dynamic Macros sections, as this page is organized alphabetically (with the exception of the Basic and Quantum sections).
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.
IMO Quantum keycodes should not have the KC_
prefix either, as that is reserved for the basic keycode set.
## Compose Onboard | ||
Allows composing directly on the keyboard. After pressing the compose onboard key, the following keystrokes trigger a preconfigured action like pressing other keys, inserting a character, or any other quantum features. | ||
|
||
* [Compose Onboard Documentation](feature_compose_onboard.md) | ||
|
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.
I don't know that this needs to be added to the glossary, but if its decided that it should be so, this section should move up between Compile and Dvorak, as this page is organized alphabetically.
#ifdef COMPOSE_ONBOARD_ENABLE | ||
KC_COMPOSE_ONBOARD, | ||
KC_COMPOB = KC_COMPOSE_ONBOARD, | ||
#endif | ||
|
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.
- The
KC_COMPOSE_ONBOARD
keycode should be added near the end of thequantum_keycodes
enum, just beforeSAFE_RANGE
on Line 520, so as not to break compatibility with VIA Configurator.
2 TheKC_COMPOB
alias should be created using a#define
statement around Line 814, as#define KC_CMOB KC_COMPOSE_ONBOARD
if you've applied the suggestion I gave above.
Honestly, I am opposed to this change. It feels like it is very much what UCIS does already. In either case, it feels redundant. I think the better direction would be to get #6580 merged in. That said, we absolutely appreciate the time and effort that went into this. Even if it doesn't get merged, we're happy to see the contribution! |
Retargeted to |
550bb6a
to
9d827f9
Compare
1d4c0cd
to
65c27a3
Compare
a1b96ba
to
3430907
Compare
There is a merge conflict here, now. Needs a rebase. |
With #6580 now being merged, I don't think there is a reason left for this PR to stay open. Thanks for your effort in reviewing and rebasing it. |
This PR adds the Compose Onboard feature, which allows composing directly on the keyboard instead of requiring userland composing (like
.XCompose
on Linux).In short, after pressing the
KC_COMPOSE_ONBOARD
key, a sequence of keys can be pressed, which can be mapped to actions in code. This is somewhat similar to the Leader Key feature with the main distinction that the leader key is time-based, while this is only input-based.I used the Leader Key feature implementation as a guideline and I think I have added code / documentation everywhere where the Leader Key appears (according to grep ;) ).
I use it in my own keymap (the compose part can be seen here).
Checklist
Edit: One possible problem is that the mapping dictionary requires quite a bit of space, increasing the binary size. For example just the
shrug
mapping in the documentation example requires close to 200 bytes.