From ddc022c291bbfe677e11483c7dfb386ca97ff188 Mon Sep 17 00:00:00 2001 From: Jamie Ding Date: Sun, 20 Mar 2022 01:44:49 +0000 Subject: [PATCH] test macro from tap hold --- app/tests/macros/behavior_keymap.dtsi | 1 - .../macros/from-tap-hold/behavior_keymap.dtsi | 51 +++++++++++-------- .../macros/from-tap-hold/events.patterns | 3 +- .../from-tap-hold/keycode_events.snapshot | 8 +-- .../macros/from-tap-hold/native_posix.keymap | 19 ++++++- 5 files changed, 52 insertions(+), 30 deletions(-) diff --git a/app/tests/macros/behavior_keymap.dtsi b/app/tests/macros/behavior_keymap.dtsi index 6860f2d5..a20859b3 100644 --- a/app/tests/macros/behavior_keymap.dtsi +++ b/app/tests/macros/behavior_keymap.dtsi @@ -72,6 +72,5 @@ &kp TAB &none>; }; - }; }; diff --git a/app/tests/macros/from-tap-hold/behavior_keymap.dtsi b/app/tests/macros/from-tap-hold/behavior_keymap.dtsi index 81b26531..85d94c35 100644 --- a/app/tests/macros/from-tap-hold/behavior_keymap.dtsi +++ b/app/tests/macros/from-tap-hold/behavior_keymap.dtsi @@ -8,44 +8,51 @@ #include #include +#define BASE 0 +#define RAISE 1 + / { macros { - abc_macro: abc_macro { - label = "ABCs"; - compatible = "zmk,behavior-macro"; - #binding-cells = <0>; - bindings = <&kp A &kp B &kp C>; - }; - - hold_shift_macro: hold_shift_macro { - label = "HOLD_SHFT"; + shift_layer_macro: shift_layer_macro { + label = "SHIFT_LAYER_MACRO"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; + wait-ms = <1>; bindings - = <¯o_press &kp LSHFT> - , <¯o_tap> - , <&kp D &kp O &kp G> - , <¯o_release &kp LSHFT> + // tog doesn't work, the tog on release doesn't seem to fire + = <¯o_press &mo RAISE &kp LSHFT> + , <¯o_pause_for_release> + , <¯o_release &mo RAISE &kp LSHFT> ; - }; + }; + }; + + + behaviors { + mth: macro_tap_hold { + compatible = "zmk,behavior-hold-tap"; + label = "MACRO_TAP_HOLD"; + #binding-cells = <2>; + flavor = "tap-unless-interrupted"; + tapping-term-ms = <200>; + bindings = <&shift_layer_macro>, <&kp>; + }; }; keymap { compatible = "zmk,keymap"; label ="Default keymap"; - default_layer { + base_layer { bindings = < - &abc_macro &mo 1 - &hold_shift_macro &custom_timing>; + &mth A B &kp C + &shift_layer_macro &kp D>; }; - extra_layer { + raise_layer { bindings = < - &dual_sequence_macro &trans - &kp TAB &none>; - + &mth L M &kp N + &kp O &kp P>; }; - }; }; diff --git a/app/tests/macros/from-tap-hold/events.patterns b/app/tests/macros/from-tap-hold/events.patterns index 3c9d3f83..a23e0563 100644 --- a/app/tests/macros/from-tap-hold/events.patterns +++ b/app/tests/macros/from-tap-hold/events.patterns @@ -1 +1,2 @@ -s/.*hid_listener_keycode/kp/p \ No newline at end of file +s/.*hid_listener_keycode/kp/p +s/.*mo_keymap_binding/mo/p diff --git a/app/tests/macros/from-tap-hold/keycode_events.snapshot b/app/tests/macros/from-tap-hold/keycode_events.snapshot index 9fe52e6d..a8283354 100644 --- a/app/tests/macros/from-tap-hold/keycode_events.snapshot +++ b/app/tests/macros/from-tap-hold/keycode_events.snapshot @@ -1,6 +1,6 @@ -kp_pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00 -kp_released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00 -kp_released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00 +mo_pressed: position 0 layer 1 +kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00 kp_pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00 kp_released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00 +mo_released: position 0 layer 1 +kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/macros/from-tap-hold/native_posix.keymap b/app/tests/macros/from-tap-hold/native_posix.keymap index 6a2391db..c2256e90 100644 --- a/app/tests/macros/from-tap-hold/native_posix.keymap +++ b/app/tests/macros/from-tap-hold/native_posix.keymap @@ -7,8 +7,23 @@ #include #include #include -#include "../behavior_keymap.dtsi" +#include "behavior_keymap.dtsi" &kscan { - events = ; + events = < + ZMK_MOCK_PRESS( 1,1,10) + ZMK_MOCK_PRESS( 0,1,10) + ZMK_MOCK_RELEASE(0,1,10) + ZMK_MOCK_RELEASE(1,1,10) + + //ZMK_MOCK_PRESS( 0,0,10) + //ZMK_MOCK_PRESS( 0,1,10) + //ZMK_MOCK_RELEASE(0,1,10) + //ZMK_MOCK_RELEASE(0,0,10) +// + //ZMK_MOCK_PRESS( 1,0,10) + //ZMK_MOCK_PRESS( 1,1,10) + //ZMK_MOCK_RELEASE(1,1,10) + //ZMK_MOCK_RELEASE(1,0,10) + >; }; \ No newline at end of file