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
Layer toggles across ergodox can get stuck in the wrong state #66
Comments
|
Yep, definitely a bug. I should be able to fix it in the next few days, but if someone gets impatient, this is where the code is: |
|
I've also run into this on my Infinity Ergodox. I am interested in contributing a fix. @haata can you point me in the right direction on this? |
|
Basically, in this function (and the functions calling it) https://github.com/kiibohd/controller/blob/master/Macro/PartialMap/macro.c#L139 I believe what's happening is I'm using an XOR instead of just a set/unset. This means if you pressed two Shift keys at different times (now the layer is temporarily unset). But release them at the same time (I think this is what's happening), it will only unset once. It should be possible to fix this by strengthening the logic a bit more. Instead of blindly setting every time the function is called. |
|
I've submitted a PR that should resolve the issue, assuming the CI checks are successful. On my Infinity Ergodox, it fixes things. |
|
@haata I believe this has been resolved, can we close the issue? |
|
Sure, still need to update the configurator, @jbondeson will take care of that. |
|
@haata Configurator has been updated. |

With the "stock" ergodox layout, pressing the two f1 keys at the same time (across both keyboards) and then releasing them in order will lock the keyboard in Layer 1 until the process is repeated.
Steps to reproduce:
I'd expect f1 to be cleared when both keys are up, and if you release the second key before the first, this does indeed happen. Also, when using a layout that has multiple f1 keys on the same half-keyboard, this issue does not seem to manifest for those two keys, so it seems that operating across the split is required.
The text was updated successfully, but these errors were encountered: