Skip to content
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

[Bug] Swap-hands breaks OSL one shot keys #24407

Open
ilikeheaps opened this issue Sep 18, 2024 · 10 comments
Open

[Bug] Swap-hands breaks OSL one shot keys #24407

ilikeheaps opened this issue Sep 18, 2024 · 10 comments

Comments

@ilikeheaps
Copy link

ilikeheaps commented Sep 18, 2024

SH_T(KC_SPC) seems to cancel one shot layer.

"r / 2"                                -> r
OSM(MOD_LSFT) then OSL(1) then "r / 2" -> @
SH_T(KC_SPC) +  "r / 2"                -> i
SH_T(KC_SPC) +  OSL(1) + "r / 2"       -> 9
OSL(1) then SH_T(KC_SPC) +  "r / 2"    -> r ***expected 9***
toggle tap OSL(1); OSL(1) + "r / 2"    -> 9
@ilikeheaps ilikeheaps changed the title [Bug] Swap-hands breaks OSL [Bug] Swap-hands breaks OSL one shot Sep 18, 2024
@ilikeheaps ilikeheaps changed the title [Bug] Swap-hands breaks OSL one shot [Bug] Swap-hands breaks OSL one shot keys Sep 18, 2024
@ilikeheaps
Copy link
Author

Perhaps a fix similar to #6943 (comment) would work, I might try it if I find time.

@ilikeheaps
Copy link
Author

Perhaps a fix similar to #6943 (comment) would work, I might try it if I find time.

Seems like code covers swap-hand but misses this specific case of "tap-swap".

#    ifdef SWAP_HANDS_ENABLE
        && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT)
#    endif

@sigprof
Copy link
Contributor

sigprof commented Sep 18, 2024

action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT should match QK_SWAP_HANDS_ONE_SHOT (SH_OS), not SH_T(kc). So that part of code keeps the one shot layer active only for SH_OS, and SH_T(kc) is not treated as a special case anywhere.

Maybe I should revive #9538, so that various user preferences in that area could be handled properly; one problem is that the API does not look good.

@ilikeheaps
Copy link
Author

Attempted a fix without understanding the code and guess what, seems like it broke something else. It might be more useful to me right now anyway.

diff --git a/quantum/action.c b/quantum/action.c
index 29822c39e9..3ad38b983a 100644
--- a/quantum/action.c
+++ b/quantum/action.c
@@ -378,7 +378,9 @@ void process_action(keyrecord_t *record, action_t action) {
 #    endif
                                               ))
 #    ifdef SWAP_HANDS_ENABLE
-        && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT)
+        && !(action.kind.id == ACT_SWAP_HANDS && (action.swap.code == OP_SH_ONESHOT
+                                                  || action.swap.code < 0xF0 // swap-hand tap key
+                                                  ))
 #    endif
         && keymap_config.oneshot_enable) {
         clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
-- 

Now:

"r / 2"                                   -> r
OSM(MOD_LSFT) then OSL(1) then "r / 2"    -> @
SH_T(KC_SPC) +  "r / 2"                   -> i
SH_T(KC_SPC) +  OSL(1) + "r / 2"          -> 9
OSL(1) then SH_T(KC_SPC) +  "r / 2"       -> 9
toggle tap OSL(1); SH_T(KC_SPC) + "r / 2" -> 9

OSM(MOD_LSFT) then SH_T(KC_SPC) +  "r / 2"    -> I
OSM(MOD_LSFT) then quickly SH_T(KC_SPC) +  "r / 2" -> <SPC>, r ***expected I***

@ilikeheaps
Copy link
Author

ilikeheaps commented Sep 18, 2024

action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT should match QK_SWAP_HANDS_ONE_SHOT (SH_OS), not SH_T(kc). So that part of code keeps the one shot layer active only for SH_OS, and SH_T(kc) is not treated as a special case anywhere.

I suppose the issue with handling SH_T here is that we can't yet know whether it will become a "modifier" or a tap key?

@sigprof
Copy link
Contributor

sigprof commented Sep 18, 2024

record->tap.count is available in process_action() (already cached in tap_count), so you can determine whether the action is a tap or a hold and act accordingly (there is a check like that in the mod tap handling part above).

@ilikeheaps
Copy link
Author

Thanks, now tapping SH_T properly releases one shot layers/modifiers. I still have some issues, I guess due to delay in OSM (#1247 ?).

OSM(MOD_LSFT), wait ~0.5s, then SH_T(KC_SPC) +  "r / 2"    -> I
OSM(MOD_LSFT) then quickly SH_T(KC_SPC) +  "r / 2" -> <SPC>, r ***expected I***

(same issue with OSL)

@sigprof
Copy link
Contributor

sigprof commented Sep 18, 2024

That old issue looks unrelated, and from your report it seems that in the SH_T(KC_SPC) + "r / 2" your SH_T(KC_SPC) press gets handled like a tap instead of a hold — so either you need to do some tuning for your tap/hold decision modes, or maybe the tap detection gets disturbed by the previous OSM(MOD_LSFT) press (may it be the case that OSM(MOD_LSFT) is not yet released before SH_T(KC_SPC) is pressed?).

@ilikeheaps
Copy link
Author

My wild guess came from timing weirdly matching OSM tapping timeout. I tried producing some logs and surprisingly got 4 different results for the same OSM(MOD_LSFT) then SH_T(KC_SPC) + "r / 2" sequence. Haven't parsed them yet, some might turn out to be user error. I'm pretty sure I released OSM(MOD_LSFT) first as I'm using the same finger for them.

"I"

2024-09-18 23:13:36 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:36 ilikeheaps:plyboard:1: EVENT: 0304d(57227)
2024-09-18 23:13:36 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:13:36 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(57227):0 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: processed: 0304d(57227):0 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:36 ilikeheaps:plyboard:1: EVENT: 0304u(57326)
2024-09-18 23:13:36 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:13:36 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(57227):1 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: MODS_TAP: Oneshot: start
2024-09-18 23:13:36 ilikeheaps:plyboard:1: waiting_buffer_enq: { [0]=0304u(57326):1  }
2024-09-18 23:13:36 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:13:36 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:13:36 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: TAPPING_KEY=0304u(57326):1 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: processed: waiting_buffer[0] =0304u(57326):1 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: 
2024-09-18 23:13:36 ilikeheaps:plyboard:1: Tapping: End(Timeout after releasing last tap): 0000u(57526)
2024-09-18 23:13:36 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:37 ilikeheaps:plyboard:1: EVENT: 0305d(57779)
2024-09-18 23:13:37 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:13:37 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(57779):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: processed: 0305d(57779):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:37 ilikeheaps:plyboard:1: EVENT: 0102d(57942)
2024-09-18 23:13:37 ilikeheaps:plyboard:1: waiting_buffer_enq: { [1]=0602d(57942):0  }
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: Tapping: End. Timeout. Not tap(0): 0000u(57979)
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:0F] layer_state:  default_layer_state: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: keyboard_report: 02 | 0F 00 00 00 00 00 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: processed: waiting_buffer[1] =0602d(57942):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:37 ilikeheaps:plyboard:1: EVENT: 0305u(58017)
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: processed: 0305u(58017):0 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:13:37 ilikeheaps:plyboard:1: EVENT: 0102u(58041)
2024-09-18 23:13:37 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:0F] layer_state:  default_layer_state: 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 00 00 00 00 00 
2024-09-18 23:13:37 ilikeheaps:plyboard:1: processed: 0602u(58041):0 

"R"

2024-09-18 23:14:23 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:23 ilikeheaps:plyboard:1: EVENT: 0304d(38558)
2024-09-18 23:14:23 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:14:23 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(38558):0 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: processed: 0304d(38558):0 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:23 ilikeheaps:plyboard:1: EVENT: 0304u(38658)
2024-09-18 23:14:23 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:14:23 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(38558):1 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: MODS_TAP: Oneshot: start
2024-09-18 23:14:23 ilikeheaps:plyboard:1: waiting_buffer_enq: { [2]=0304u(38658):1  }
2024-09-18 23:14:23 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:14:23 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:14:23 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: TAPPING_KEY=0304u(38658):1 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: processed: waiting_buffer[2] =0304u(38658):1 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:23 ilikeheaps:plyboard:1: EVENT: 0305d(38819)
2024-09-18 23:14:23 ilikeheaps:plyboard:1: Tapping: Start with interfering other tap.
2024-09-18 23:14:23 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(38819):0 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: processed: 0305d(38819):0 
2024-09-18 23:14:23 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:24 ilikeheaps:plyboard:1: EVENT: 0102d(38961)
2024-09-18 23:14:24 ilikeheaps:plyboard:1: waiting_buffer_enq: { [3]=0102d(38961):0  }
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: Tapping: End. Timeout. Not tap(0): 0000u(39019)
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:16] layer_state:  default_layer_state: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: keyboard_report: 02 | 16 00 00 00 00 00 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: processed: waiting_buffer[3] =0102d(38961):0 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:24 ilikeheaps:plyboard:1: EVENT: 0305u(39037)
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: processed: 0305u(39037):0 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:14:24 ilikeheaps:plyboard:1: EVENT: 0102u(39051)
2024-09-18 23:14:24 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:16] layer_state:  default_layer_state: 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 00 00 00 00 00 
2024-09-18 23:14:24 ilikeheaps:plyboard:1: processed: 0102u(39051):0 

" r"

2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0304d(57614)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(57614):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: 0304d(57614):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0304u(57714)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(57614):1 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: MODS_TAP: Oneshot: start
2024-09-18 23:15:48 ilikeheaps:plyboard:1: waiting_buffer_enq: { [3]=0304u(57714):1  }
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0304u(57714):1 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: waiting_buffer[3] =0304u(57714):1 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0305d(57848)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: Start with interfering other tap.
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(57848):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: 0305d(57848):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0102d(57896)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: waiting_buffer_enq: { [4]=0102d(57896):0  }
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0305u(57951)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(57848):1-
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: keyboard_report: 02 | 2C 00 00 00 00 00 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: waiting_buffer_enq: { [4]=0102d(57896):0  [5]=0305u(57951):1- }
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: key event while last tap(>0).
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:16] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: keyboard_report: 00 | 2C 16 00 00 00 00 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: waiting_buffer[4] =0102d(57896):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 16 00 00 00 00 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: waiting_buffer[5] =0000u(0):0 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:15:48 ilikeheaps:plyboard:1: EVENT: 0102u(57987)
2024-09-18 23:15:48 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:16] layer_state:  default_layer_state: 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 00 00 00 00 00 
2024-09-18 23:15:48 ilikeheaps:plyboard:1: processed: 0102u(57987):0 

" i"

2024-09-18 23:18:04 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:04 ilikeheaps:plyboard:1: EVENT: 0304d(62353)
2024-09-18 23:18:04 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:18:04 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(62353):0 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: processed: 0304d(62353):0 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:04 ilikeheaps:plyboard:1: EVENT: 0304u(62450)
2024-09-18 23:18:04 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:18:04 ilikeheaps:plyboard:1: TAPPING_KEY=0304d(62353):1 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:18:04 ilikeheaps:plyboard:1: MODS_TAP: Oneshot: start
2024-09-18 23:18:04 ilikeheaps:plyboard:1: waiting_buffer_enq: { [2]=0304u(62450):1  }
2024-09-18 23:18:04 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ACTION: ACT_LMODS_TAP[2:00] layer_state:  default_layer_state: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: TAPPING_KEY=0304u(62450):1 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: processed: waiting_buffer[2] =0304u(62450):1 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: End(Timeout after releasing last tap): 0000u(62650)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: EVENT: 0305d(62768)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: Start(Press tap key).
2024-09-18 23:18:05 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(62768):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: processed: 0305d(62768):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: EVENT: 0102d(62861)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: waiting_buffer_enq: { [3]=0602d(62861):0  }
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: EVENT: 0305u(62933)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: First tap(0->1).
2024-09-18 23:18:05 ilikeheaps:plyboard:1: TAPPING_KEY=0305d(62768):1-
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: keyboard_report: 02 | 2C 00 00 00 00 00 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: waiting_buffer_enq: { [3]=0602d(62861):0  [4]=0305u(62933):1- }
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: process waiting_buffer -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: key event while last tap(>0).
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:0F] layer_state:  default_layer_state: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: keyboard_report: 00 | 2C 0F 00 00 00 00 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: processed: waiting_buffer[3] =0602d(62861):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: Tapping: Tap release(1)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ACTION: ACT_SWAP_HANDS[0:2C] layer_state:  default_layer_state: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 0F 00 00 00 00 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: TAPPING_KEY=0000u(0):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: processed: waiting_buffer[4] =0000u(0):0 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ---- action_exec: start -----
2024-09-18 23:18:05 ilikeheaps:plyboard:1: EVENT: 0102u(62969)
2024-09-18 23:18:05 ilikeheaps:plyboard:1: ACTION: ACT_LMODS[0:0F] layer_state:  default_layer_state: 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: keyboard_report: 00 | 00 00 00 00 00 00 
2024-09-18 23:18:05 ilikeheaps:plyboard:1: processed: 0602u(62969):0 

@ilikeheaps
Copy link
Author

While analyzing the logs I found out (a part of?) the issue happens on master regardless of one shot feature: SH_T(KC_SPC) + "r / 2" produces i or i depending on timing. Posted that in #24410

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants