-
-
Notifications
You must be signed in to change notification settings - Fork 40.4k
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
OSMs on OSL stopped resetting default layer #22566
Comments
You can reimplement the behavior of Lines 425 to 485 in 4228f55
If your reimplementation returns Lines 274 to 281 in 4228f55
(Actually you may just try to call It could be possible to resurrect #9538 for a more general solution, although I don't really like the way how a tri-state value is implemented there. |
Yeah I could do that, but I already have a one line fix by reverting the change that broke my layout. |
void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
if (IS_QK_ONE_SHOT_MOD(keycode) && is_oneshot_layer_active() && record->event.pressed) {
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
}
return;
} I also had this problem and actually agree that the current behavior of QMK is how it should be... for my layout it doesn't work tho, so I added this fix to my userspace, and it seems to be working perfectly. |
Okay maybe that is a better solution. Will test it out. |
Not sure I agree with this change that broke OSMs on OSLs. Maybe I just don't understand the reasoning. But KoFish's solution above works to make OSLs function in a way that makes sense to me. |
IMHO the change didn't break OSMs on OSLs, it fixed it. It was inconsistent that all mods don't reset the OSL except with OSM. And that prevented having a OSL-activated layer containing OSM and use it to shift a key on the same layer. |
All good. I will close this issue as KoFish's userspace solution above restores the old OSM/OSL behaviour for people like me who use it. |
Describe the Bug
After rebasing my qmk branch on the current master (v 0.23.0) I noticed my "callum style" one shot mods (mods on a different layer) were no longer resetting the active layer back to the default. I tracked this new behaviour down to this patch:
e0eb90aba1 [Mon Sep 25 12:53:12 2023] Fix OSM on a OSL activated layer (#20410) [GitHub
Reverting this patch restores the previous behaviour of one shot mods and one shot layers which I was relying on. Maybe there should be some sort of option to allow for both types of behaviour?
Keyboard Used
contra
Link to product page (if applicable)
No response
Operating System
Debian linux
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
No response
Additional Context
For reference the rebased qmk code with revert that fixes the issue I was having is here:
https://github.com/bencollerson/qmk_firmware/tree/fixedrebase
The text was updated successfully, but these errors were encountered: