#include #include #include #include "../../../../zmk-nodefree-config/helper.h" #define L0 0 #define L1 1 #define L2 2 #define L3 3 #define L4 3 / { behaviors { // characters with logical inverses, assigned to shift iplus: i_plus_minus { compatible = "zmk,behavior-mod-morph"; label = "+ -"; #binding-cells = <0>; bindings = <&kp PLUS>, <&kp MINUS>; mods = <(MOD_LSFT)>; }; iunder: i_underscore_pipe { compatible = "zmk,behavior-mod-morph"; label = "_ |"; #binding-cells = <0>; bindings = <&kp UNDER>, <&kp PIPE>; mods = <(MOD_LSFT)>; }; idot: i_dot_colon { compatible = "zmk,behavior-mod-morph"; label = ". :"; #binding-cells = <0>; bindings = <&kp DOT>, <&kp COLON>; mods = <(MOD_LSFT)>; }; icomma: i_comma_semicolon { compatible = "zmk,behavior-mod-morph"; label = ", ;"; #binding-cells = <0>; bindings = <&kp COMMA>, <&kp SEMICOLON>; mods = <(MOD_LSFT)>; }; }; }; / { keymap { compatible = "zmk,keymap"; layer_0 { bindings = < &kp ESC &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp BACKSPACE &kp A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &kp O &kp LCTRL &kp X &kp C &kp D &kp V &kp K &kp H &kp Z &kp Q &kp LALT &kp SPACE &kp LWIN &mo L1 &mo L2 &kp LSHIFT &kp RET >; }; // numbers + symbols + non english letters layer_1 { bindings = < &kp TAB &none &none &none &none &none &none &none &none &kp DEL &kp N0 &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &trans &none &none &none &none &iunder &iplus &icomma &idot &trans &trans &trans &trans &mo L3 &trans &trans >; }; // F keys + navigation layer_2 { bindings = < &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &none &kp HOME &kp UP &kp END &kp PG_UP &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &none &kp LEFT &kp DOWN &kp RIGHT &kp PG_DN &trans &kp F11 &kp F12 &kp PSCRN &kp K_CMENU &none &none &none &none &trans &trans &trans &mo L3 &trans &trans &trans >; }; // media + bluetooth + future layer toggles layer_3 { bindings = < &trans &none &none &none &to L4 &kp C_BRI_UP &kp C_PREV &kp C_NEXT &kp C_VOL_UP &trans &none &none &none &none &none &kp C_BRI_DN &kp C_PLAY &kp C_PAUSE &kp C_VOL_DN &none &trans &none &bt BT_SEL 0 &bt BT_NXT &bt BT_CLR &none &none &none &none &trans &trans &trans &trans &trans &trans &trans >; }; // toki pona l_toki { bindings = < &trans &kp P &kp W &kp U &none &to L0 &kp E &kp S &kp J &trans &kp N &kp L &kp I &kp A &none &none &kp O &kp T &kp M &kp K &trans &none &none &none &none &none &none &none &none &none &trans &trans &none &none &trans &trans >; }; }; };