-
Notifications
You must be signed in to change notification settings - Fork 21
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
group output error #138
Comments
You might want to give more examples. At least I'm not sure if I understand what is the expected result. I would expect pressing Doesn't
What are the other definitions? |
@ristomatti the other defs are simple remaps
you are correct in your observation that the group should not be triggered |
I'll try if I can reproduce it. So the full config to would be this? I >> U
O >> O
S >> I
D >> N
(N I O ) >> F O U N D
(A S D) >> I O N |
At least with that, I can't get reproduce the output of
Out of curiosity I tried the
And the
I then tried it again with some more thought. I can consistently make
|
I tried changing the last lines to this:
...but still get the same behavior. BTW, why do you map |
thanks for testing. no all keys are remmapped.. i found the bug because i kept "misspelling" and it made no sense.. my presses are normal rolling.. ie holding |
try
also found out if i press and hold |
version 4.1.1 |
The combined keys seem to work pretty much flawlessly when defined first. But I can reproduce what you described both ways.
(tested on version 4.1.2) |
I believe getting this right in all use cases might be really difficult. In addition to that issue, there's the compromise with the key combinations. If defined afterwards, the output can get mixed up and if defined first, you lose key repeat of any of the keys used in the combination (which to be fare, is to be expected). |
I find the idea of using Keymapper to define an alternative layout somewhat difficult to grasp/maintain on the config side. If I think about it intuitively, you'd first define to what key each singular key maps to. Then when adding further mappings, you would do it based on the mapping defined earlier, but it doesn't work like as each key press in interpreted by the key code, right? So if I'd do e.g. a dvorak/workman layout for the alphas, then swap the keycaps accordingly, I would still need to do the following mappings using the original key names (= keycodes sent by the keyboard). Unless I've got this completely wrong, I'd think to make the process more intuitive, the key handling would need to be done in two phases based on two separate config files. First would define the singular key remaps, and the second would work the same way as it works now, with the exception that the mappings could be defined based on remaps done in the first phase. |
@ristomatti Possibly other tools are more suited, but eg kanata has a hard time with using ALT as a layer swap key while at the same time allows the alt-tab, or the alt+mouse = column select so I tried Keymapper and this is where I am at. If you can advice on kmonad or kanata setup ill gladly try remapping using those. I don't swap any key caps I learn the keyboard by heart and sometime use my always-on-keyboard display ;) One could do multiple configurations as you suggest, but perhaps we are bending the tool to where it doesn't want to be. In any case my complaints were about unmatched groups having effect on the output, not changing the whole configuration language |
@ristomatti when the layout has matured more I'll gladly share it with others. It's awesome so far.. I just need to get to 50 WPM before I can judge if it is insanity or ingenious what I'm doing! drop me an email for private further conversations rollercoasterlayout@gmail.com |
I haven't used either kmonad or kanata. I did check the various alternatives but either the configuration looked tedious or missed some feature I wanted. I might have installed some of them and then immediately uninstalled due to bugs or other reasons. Keymapper looked like the one I was looking for, even to the point I went through the hurdle of figuring out how to build it on Ubuntu 20.04 which is not supported. It was well worth the effort and my search is over. 🙂 |
Thanks for helping with the reproduction. This should be fixed in the 4.1.3 release. I mean it should no longer forward keys unmapped when it can no longer match the group.
I have also thought about that once and might implement it some day. |
@houmain In case you're not aware of this, GitHub can automatically link commits to issues. This gives instant feedback to people watching an issue. For example, in the release notes for 4.1.3 you mention this issue has been fixed. By using specific keywords in your commit messages, the commits can be linked to the related issues. In this case, if the commit message of 81312c7 would have contained the magic words "fixes #138", the commit would be shown on this issue therad. There's plenty of alternative phrases to use: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword. It's a bit unclear to me though if a pull request needs to be made for this to occur if it's enough to just commit on the main branch. Edit: @houmain was faster, so removed a comment mentioning the release. |
Somehow I'm not surprised. 😄 I'll test the fix out of curiosity. @houmain Did you notice #139? It needs to be updated to include Does it also silence the notification of an invalid config though? |
I can no longer reproduce either issue when config is defined like this: (N I O ) >> F O U N D
(A S D) >> I O N
I >> U
A >> S
S >> I
D >> N
N >> F If I move the two first lines in the end, the output is not consistent:
I don't know if this is to be expected. |
Lol who knows ;) |
I did a little experiment to attempt fixing key repeat. While doing it, I noticed a bug, but also got some interesting results to mess up with our brains. This is the config: I !100ms I >> U U
A !100ms A >> S S
S !100ms S >> I I
D !100ms D >> N N
N !100ms N >> F F
(N I O) >> F O U N D
(A S D) >> I O N
I >> U
A >> S
S >> I
D >> N
N >> F With this config, the individual key remaps seem to work as expected and so does my key repeat fix attempt. But the grouped keys give a rather interesting outcome 😬: Pressing With the Rolling |
I did a further experiment, changing the combined keys in the above config to:
This obviously breaks pressing them at the same time or in a reverse order. When typed in the specified order, the output is exactly the same as described above. When pressed the same time in this sequence: |
Given the amount of things occurring at the same time, I would almost be ready to just accept this to be "unfixable" and call it a day. What do you think @houmain, is it just a bug waiting to be fixed or does this involve some OS/hardware level randomness that just appears in a different place when one issue is fixed? |
I tried these configurations a bit. The results may not be what the creator intended, but I don't think they are illogical.
rolling over The first two immediately output something as soon as they are pressed ( |
Yes, |
Perhaps consider a flag that only silences success notifications? I still enabled the flag though. Most of the times when I edit the mappings, I have my Normally just an undo would be sufficient, but I've recently changed Helix to be my default text editor. As much as I've liked it so far, it's way of selecting text by default on each movement or when jumping through search matches still gets me off guard. I often end up unknowingly editing multiple lines at the same time, some of which might be hundreds of lines off screen. 😁 |
@houmain are you interested in working on supporting "adaptive keys" as describe above ? |
Yes, I think I could implement something like #137 (comment) and then I could also add a way to access the recently typed keys. |
Now it does make sense indeed, thanks for the step by step explanation. Luckily I'm not interested in trying to implement anything as exotic (at least for now) as my brain would melt debugging issues like this. 😅 Accessing the runtime value of |
you may be right. |
A few new features are available in the 4.3.0 release.
rolling over
One can write now:
The mapping is skipped as long as it does not match completely. So it does not wait after the |
I'll leave the honor of testing this first to you @kbilsted. 😁 I haven't yet done any testing myself but I believe both additions sound great! The Support for _Meta = !ControlLeft !ControlRight !MetaRight !AltLeft !AltGr MetaLeft
_MetaRight = !ControlLeft !ControlRight !MetaLeft !AltLeft !AltGr MetaRight
_Alt = !ControlLeft !ControlRight !MetaLeft !MetaRight !AltGr AltLeft
_AltGr = !ControlLeft !ControlRight !MetaLeft !MetaRight !AltLeft AltGr
_Control = !ControlRight !MetaLeft !MetaRight !AltLeft !AltGr ControlLeft
_ControlRight = !ControlLeft !MetaLeft !MetaRight !AltLeft !AltGr ControlRight
_Shift = !ControlLeft !ControlRight !MetaLeft !MetaRight !AltLeft !AltGr ShiftLeft
_ShiftRight = !ControlLeft !ControlRight !MetaLeft !MetaRight !AltLeft !AltGr ShiftRight It should also remove the coupling with input keymaps and abstracted output mappings. For instance, in many cases I've had to use one of the above on some of the abstracted commands when the the input part uses a different modifier. The most common scenario has been mappings that have With |
hi
there are problems when using two group definitions
i have remapped all my keys such that I am no longer using qwerty and as the first i define
when both definitions are in use it triggers the error..
the error happens when pressing eg
s d
fast which produceid
..without the above defs it produces
in
(which is correct according to other definitions).The text was updated successfully, but these errors were encountered: