2021-03-07 05:50:30 -08:00
|
|
|
#include <dt-bindings/zmk/keys.h>
|
|
|
|
#include <behaviors.dtsi>
|
|
|
|
#include <dt-bindings/zmk/kscan_mock.h>
|
|
|
|
|
2023-04-22 21:16:36 -07:00
|
|
|
/*
|
2021-03-07 05:50:30 -08:00
|
|
|
* A hold-tap with long tapping term is pressed first.
|
|
|
|
* A hold-tap with short tapping term is quickly tapped.
|
|
|
|
* The short tapping term hold-tap should 'tap', not 'hold'.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/ {
|
2023-04-22 21:25:56 -07:00
|
|
|
behaviors {
|
|
|
|
tp_short: short_tap {
|
|
|
|
compatible = "zmk,behavior-hold-tap";
|
|
|
|
#binding-cells = <2>;
|
|
|
|
flavor = "tap-preferred";
|
|
|
|
tapping-term-ms = <100>;
|
|
|
|
quick-tap-ms = <200>;
|
|
|
|
bindings = <&kp>, <&kp>;
|
|
|
|
};
|
|
|
|
tp_long: long_tap {
|
|
|
|
compatible = "zmk,behavior-hold-tap";
|
|
|
|
#binding-cells = <2>;
|
|
|
|
flavor = "tap-preferred";
|
|
|
|
tapping-term-ms = <200>;
|
|
|
|
quick-tap-ms = <200>;
|
|
|
|
bindings = <&kp>, <&kp>;
|
|
|
|
};
|
|
|
|
};
|
2021-03-07 05:50:30 -08:00
|
|
|
|
2023-04-22 21:25:56 -07:00
|
|
|
keymap {
|
|
|
|
compatible = "zmk,keymap";
|
2021-03-07 05:50:30 -08:00
|
|
|
|
2023-04-22 21:25:56 -07:00
|
|
|
default_layer {
|
|
|
|
bindings = <
|
|
|
|
&tp_long LEFT_SHIFT F &tp_short LEFT_CONTROL J
|
|
|
|
&kp D &kp RIGHT_CONTROL>;
|
|
|
|
};
|
|
|
|
};
|
2021-03-07 05:50:30 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
&kscan {
|
2023-04-22 21:25:56 -07:00
|
|
|
events = <
|
|
|
|
ZMK_MOCK_PRESS(0,0,20)
|
|
|
|
ZMK_MOCK_PRESS(0,1,20)
|
|
|
|
ZMK_MOCK_RELEASE(0,1,200)
|
|
|
|
ZMK_MOCK_RELEASE(0,0,10)
|
|
|
|
>;
|
2021-03-07 05:50:30 -08:00
|
|
|
};
|