From cc9035693b55edc4de0cebaee384c80166392049 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Sun, 20 Nov 2022 08:51:51 -0800 Subject: [PATCH] Bug: Layer-tap from higher-number to lower fails --- .../lt-higher-lower-layer/events.patterns | 2 + .../keycode_events.snapshot | 12 ++++ .../native_posix_64.keymap | 71 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 app/tests/layer-tap/lt-higher-lower-layer/events.patterns create mode 100644 app/tests/layer-tap/lt-higher-lower-layer/keycode_events.snapshot create mode 100644 app/tests/layer-tap/lt-higher-lower-layer/native_posix_64.keymap diff --git a/app/tests/layer-tap/lt-higher-lower-layer/events.patterns b/app/tests/layer-tap/lt-higher-lower-layer/events.patterns new file mode 100644 index 00000000..a23e0563 --- /dev/null +++ b/app/tests/layer-tap/lt-higher-lower-layer/events.patterns @@ -0,0 +1,2 @@ +s/.*hid_listener_keycode/kp/p +s/.*mo_keymap_binding/mo/p diff --git a/app/tests/layer-tap/lt-higher-lower-layer/keycode_events.snapshot b/app/tests/layer-tap/lt-higher-lower-layer/keycode_events.snapshot new file mode 100644 index 00000000..daecd91e --- /dev/null +++ b/app/tests/layer-tap/lt-higher-lower-layer/keycode_events.snapshot @@ -0,0 +1,12 @@ +mo_pressed: position 1 layer 2 +kp_pressed: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +mo_released: position 1 layer 2 +mo_pressed: position 2 layer 2 +kp_pressed: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +mo_released: position 2 layer 2 +mo_pressed: position 2 layer 2 +kp_pressed: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1F implicit_mods 0x00 explicit_mods 0x00 +mo_released: position 2 layer 2 diff --git a/app/tests/layer-tap/lt-higher-lower-layer/native_posix_64.keymap b/app/tests/layer-tap/lt-higher-lower-layer/native_posix_64.keymap new file mode 100644 index 00000000..a6be3e85 --- /dev/null +++ b/app/tests/layer-tap/lt-higher-lower-layer/native_posix_64.keymap @@ -0,0 +1,71 @@ +#include +#include +#include + +< { + flavor = "balanced"; +}; + +/ { + keymap { + compatible = "zmk,keymap"; + default_layer { + bindings = < + &kp N0 < 2 N0 + &to 1 &to 3 + >; + }; + layer_1 { + bindings = < + &kp N1 &none + < 2 N1 &to 0 + >; + }; + layer_2 { + bindings = < + &kp N2 &none + &trans &trans + >; + }; + layer_3 { + bindings = < + &kp N3 &none + < 2 N3 &to 0 + >; + }; + }; +}; + +&kscan { + events = < + // LT 0->2 and get 2 + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + // TO 1 + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + + // LT 1->2 and get 2 + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + ZMK_MOCK_RELEASE(1,0,10) + + // TO 0 + ZMK_MOCK_PRESS(1,1,10) + ZMK_MOCK_RELEASE(1,1,10) + + // TO 3 + ZMK_MOCK_PRESS(1,1,10) + ZMK_MOCK_RELEASE(1,1,10) + + // LT 3->2 and get 2 + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + ZMK_MOCK_RELEASE(1,0,10) + >; +};