Open w0uld opened 11 months ago
Can you note the exact order of key presses and releases and position of the key for the keymap that you linked? I am having a bit of trouble understanding you reproduce it, maybe others would be confused as well.
As a bonus, that info would make it much easier to create a test that would reproduce the issue, which in turn makes it easier to debug and fix.
The keys involved are:
Order of pressing: 1, 2, 3 Order of release: can't tell exactly, the issue occurs only if I release them almost immediately and pretty much at the same time.
Is this what you're looking for, or you'd need me to be more specific in some areas? Happy to provide more information, but with me being new to this I'm not sure what's deemed useful. :)
Relevant layers:
dvorak_layer {
label = "DVRK";
bindings = <
// ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮ ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮
< NAVI TAB &kp APOS &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L &kp FSLH
// ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
&kp LCTRL &kp A &kp O &kp E &kp U &kp I &kp D &kp H &kp T &kp N &kp S &kp MINUS
// ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
&kp LSHFT &kp SEMI &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z &mt LSHFT EQUAL
// ╰───────────────┴───────────────┴───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┴───────────────┴───────────────╯
&kp LALT &kp SPACE &_lt NMBR SPACE < NAVI BSPC &sl ACNT &mt LGUI RET
// ╰───────────────┴───────────────┴───────────────╯ ╰───────────────┴───────────────┴───────────────╯
>;
};
accent_layer {
label = "ACNT";
bindings = <
// ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮ ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮
&trans &kp F20 &kp F21 &kp F22 &kp F23 &trans &trans &trans &trans &trans &trans &trans
// ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
&trans &kp F15 &kp F16 &kp F17 &kp F18 &kp F19 &trans &trans &trans &trans &trans &trans
// ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
// ╰───────────────┴───────────────┴───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────┼───────────────┼───────────────┼───────────────┴───────────────┴───────────────╯
&caps_word &trans &trans &trans &trans &trans
// ╰───────────────┴───────────────┴───────────────╯ ╰───────────────┴───────────────┴───────────────╯
>;
};
Timings:
#define _QUIKTAP_MS 250
#define _TAPTERM_MS 200
&mt settings:
&mt {
quick_tap_ms = <_QUIKTAP_MS>;
tapping_term_ms = <_TAPTERM_MS>;
// flavor = "balanced";
flavor = "hold-preferred";
retro-tap;
};
That is helpful, thanks.
If you wanted to go the extra mile, you could try writing a test like I mentioned. What I usually try to do is reproduce the issue, then start simplifying the setup until it no longer reproduces. Simplifying involves e.g. removing combos, reducing the layer size to only contain the necessary keys, remove extra properties from behaviors, etc. This is much easier to do with a test since you don't have to flash your keyboard everytime and try to reproduce press/release timings manually.
Looking at the description it doesn't look like I'd be able to actually run the test. I'm on Windows, and as far as I understand the guide I'd need to set up a Linux environment to do this. :(
I see, I use WSL2 on Windows with Ubuntu/Debian for ZMK work, but it is up to you whether you want to invest in it or not.
That part is somewhat over my level of expertise. I apologize, I think I'll have to pass on that. :/
Reviving issue #986 | I've encountered a very similar issue, but instead of combos, it's paired with layer switching.
Configuration here: /config/corneish_zen.keymap Layers involved are DVRK and ACNT.
Long story short:
Notes:
I decided to switch to mod-morphs to see if the issue persisted. With mod-morphs instead of layer switches, the issue is non-existent. This is my workaround for the time being.
Log after pressing & releasing layer switch, mod-tap, and a third key (to trigger the hold behavior) in a very short timeframe, causing the issue to occur: