-
Notifications
You must be signed in to change notification settings - Fork 129
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(fake-keys): add fake keys feature #92
Conversation
25f3a3b
to
0eac5ff
Compare
This commit adds full functionality of the fake keys feature. Examples and descriptions of intended use cases are added to the kanata.kbd file.
Hey, just a quick question on fake keys: what is the use of the block For the few use cases I've seen, it's always
However the fakekey aliases don't really create a new virtual key (as described in #230), and most of the time they are straightforwardly based on existing keys, e.g.
So as far as I understand, fakekeys don't create a new virtual key, they just define a custom action with In So I read If all of this is correct, the code could be simplified by removing the In #80, you said it made more sense regarding how keyberon works, to NOT separate the prososed press-only/release-only/tap part from the on-press/on-release. fakekeys would still be able to take complex actions as arguments, everything would just be defined in |
This is not a correct understanding of the implementation. The purpose of the So in Similarly in A different example to illustrate:
So maybe I'm misunderstanding something in your comment - in the proposed removal of Or perhaps you're suggesting that |
What I don't understand is what is the interest of doing all of this. All your explanations highlight how an alias and a fake key have a different implementation. Then you say, they ought to get a different syntax. But conceptually, I don't see many differences, and I don't understand what is the point of having |
One advantage: when the configuration matches the model more closely, it's easier to implement, there's less code, which means fewer chances to introduce bugs. Since the idea of fake keys, which is primarily for release-only/press-only keys or for usage by defseq, is already fairly advanced (in my opinion of course), it doesn't seem high priority to me to improve its ergonomics. In addition, a configuration is used far more often than is written, so some friction in configuration, as long as it works, is acceptable to me. If you or someone else is willing to volunteer their time to improve the ergonomics of this feature or any others, PRs are very welcome! |
That makes sense. I'll see for improving ergonomics but as you said, just set up a working configuration and forgetting about it is easier ! |
This commit adds full functionality of the fake keys feature. Examples
and descriptions of intended use cases are added to the kanata.kbd file.
Closes #80