|
|
|
#include <dt-bindings/zmk/keys.h>
|
|
|
|
#include <zmk/kscan-mock.h>
|
|
|
|
|
|
|
|
/ {
|
|
|
|
chosen {
|
|
|
|
zmk,kscan = &kscan0;
|
|
|
|
zmk,keymap = &keymap0;
|
|
|
|
};
|
|
|
|
|
|
|
|
kscan0: kscan_0 {
|
|
|
|
compatible = "zmk,kscan-composite";
|
|
|
|
label = "KSCAN_COMP";
|
|
|
|
rows = <2>;
|
|
|
|
columns = <4>;
|
|
|
|
|
|
|
|
left: left {
|
|
|
|
kscan = <&left_hand>;
|
|
|
|
};
|
|
|
|
|
|
|
|
right: right {
|
|
|
|
kscan = <&right_hand>;
|
|
|
|
column-offset = <2>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
left_hand: kscan_1 {
|
|
|
|
compatible = "zmk,kscan-mock";
|
|
|
|
label = "KSCAN_LEFT";
|
|
|
|
|
|
|
|
rows = <2>;
|
|
|
|
columns = <2>;
|
|
|
|
events = <ZMK_MOCK_PRESS(0,1,300) ZMK_MOCK_PRESS(0,0,300) ZMK_MOCK_RELEASE(0,0,300) ZMK_MOCK_RELEASE(0,1,300)>;
|
|
|
|
// events = <ZMK_MOCK_PRESS(0,0,800) ZMK_MOCK_RELEASE(0,0,800) ZMK_MOCK_PRESS(0,1,800) ZMK_MOCK_RELEASE(0,1,800)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
right_hand: kscan_2 {
|
|
|
|
compatible = "zmk,kscan-mock";
|
|
|
|
label = "KSCAN_RIGHT";
|
|
|
|
|
|
|
|
rows = <2>;
|
|
|
|
columns = <2>;
|
|
|
|
events = <ZMK_MOCK_PRESS(1,1,800) ZMK_MOCK_RELEASE(1,1,100) ZMK_MOCK_PRESS(0,1,800) ZMK_MOCK_RELEASE(0,1,100)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
keymap0: keymap {
|
|
|
|
compatible = "zmk,keymap";
|
|
|
|
label ="Default keymap";
|
|
|
|
layers = <&default &lower &raise>;
|
|
|
|
};
|
|
|
|
|
|
|
|
layers {
|
|
|
|
compatible = "zmk,layers";
|
|
|
|
|
|
|
|
default: layer_0 {
|
|
|
|
label = "DEFAULT";
|
|
|
|
keys =
|
|
|
|
<
|
|
|
|
KC_A MT(MOD_LSFT, KC_B) KC_C KC_D
|
|
|
|
KC_E KC_F KC_G KC_H
|
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
lower: layer_1 {
|
|
|
|
label = "LOWER";
|
|
|
|
keys = <
|
|
|
|
KC_A KC_B KC_C KC_D
|
|
|
|
KC_E KC_F KC_G KC_H
|
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
raise: layer_2 {
|
|
|
|
label = "RAISE";
|
|
|
|
keys = <
|
|
|
|
KC_E KC_F KC_G KC_H
|
|
|
|
KC_A KC_B KC_C KC_D
|
|
|
|
>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|