zmk_mf68/app/tests/macros/behavior_keymap.dtsi
Peter Johanson 3a6a249ad0 feat(behaviors): Add macro support.
* Fine grainted press/release/tap actions.
* TIming between actions can be controlled.
* Processed async, to avoid blocking.
2022-03-23 23:42:54 -04:00

68 lines
1.1 KiB
Text

/*
* Copyright (c) 2022 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/kscan_mock.h>
/ {
macros {
ZMK_MACRO(abc_macro,
wait-ms = <10>;
tap-ms = <50>;
bindings = <&kp A &kp B &kp C>;
)
ZMK_MACRO(hold_shift_macro,
bindings
= <&macro_press &kp LSHFT>
, <&macro_tap>
, <&kp D &kp O &kp G>
, <&macro_release &kp LSHFT>
;
)
ZMK_MACRO(custom_timing,
bindings
= <&macro_wait_time 50>
, <&kp A>
, <&macro_tap_time 20>
, <&kp B &kp C>
;
)
ZMK_MACRO(dual_sequence_macro,
wait-ms = <10>;
tap-ms = <40>;
bindings
= <&macro_press &kp LALT>
, <&macro_tap>
, <&kp TAB>
, <&macro_pause_for_release>
, <&macro_release &kp LALT>
;
)
};
keymap {
compatible = "zmk,keymap";
label ="Default keymap";
default_layer {
bindings = <
&abc_macro &mo 1
&hold_shift_macro &custom_timing>;
};
extra_layer {
bindings = <
&dual_sequence_macro &trans
&kp TAB &none>;
};
};
};