[Bug] Retro tapping not triggered after release of dual function key during key roll over from previous keys
#22.916 aperta il 18 gen 2024
Metriche repository
- Star
- (20.368 star)
- Metriche merge PR
- (Merge medio 20g 9h) (27 PR mergiate in 30 g)
Descrizione
Describe the Bug
When a dual function key is configured as a normal key when pressed, but to enter a layer when hold; the retro tapping feature doesn't trigger the normal key if an arbitrary key from previous typing is still down (key roll over).
I have recently acquired a ZSA Voyager and I have configured a thumb key to send Enter when pressed, and to enable my navigation layer when hold. Since I want quick access to the nav layer while typing, I have configured tapping term to a minimum (1ms), and enabled retro tapping. This means I can type fairly quickly and still be able to access my arrow keys directly in the middle of a sentence. Thanks to retro tapping, I can still use the thumb key as the very common Enter key. It works great!
However; if I'm currently holding a previous key while pressing down the thumb key, the retro tapping functionality isn't triggering. The keyboard isn't sending Enter once I release the dual function key (without pressing anything in the nav layer).
Steps to reproduce:
- Configure tapping term to 1ms
- Enable retro tapping
- Configure a dual function key; a normal character when pressed (e.g.
A), and a specific layer when hold.
Do the following in a short time span of about a second or so:
- Press any other arbitrary normal key, e.g.
B - Press the dual function key
- Release the
Bkey - Release the dual function key
Expected behavior at each step:
- The keyboard should send that
Bis pressed - The keyboard should enter the layer (basically directly; 1ms)
- The keyboard should send that
Bis released. - The keyboard should exit the layer, and then send
A, since nothing in the layer was pressed and retro tapping is enabled.
Actual observed behavior:
- The keyboard sends that
Bis pressed. - The keyboard enters the layer (this is visible, because the LEDs light up)
- The keyboard sends that
Bis released. - The keyboard exits the layer (the LEDs go dark), but the
Akey is not sent.
From what I understand this is a rather unusual configuration, i.e. having tapping term set to 1ms, but it is quite crucial to the way I want to operate my keyboard. I have set my thumb key to access the arrow keys because I want navigation available without any delay at all, and that part works great. I still need to repurpose the thumb keys for Enter/Space (not enough thumb keys, ah the misery!), but the observed bug causes strife in my daily use, because when executing some arbitrary short shell script commands (e.g. ls) I basically roll over all three keys L, S, Enter. This happens quite often, and those bash commands just sit there and stare at me menacingly from the terminal because Enter never arrives.
I know ZSA maintains their own fork of QMK, but I suspect the problem stems from the original repo. I haven't checked out the code myself yet, but if anyone else wants to have a go at this, you have my undying gratitude :)
Keyboard Used
voyager
Link to product page (if applicable)
Operating System
Linux (Manjaro)
qmk doctor Output
No response
Is AutoHotKey / Karabiner installed
- AutoHotKey (Windows)
- Karabiner (macOS)
Other keyboard-related software installed
No response
Additional Context
No response