// Copyright (c) 2022 The ZMK Contributors // SPDX-License-Identifier: MIT #include #include #include #include // Cannot use it with keymap-drawer /* #include "zmk-helpers/key-labels/34.h" */ #include "keypos.h" #define BASE 0 #define SYM 1 #define NAV 2 #define WNAV 3 #define NUM 4 #define FUN 5 #define MODS 6 #define FRA 7 #define VOL_DN C_VOL_DN #define VOL_UP C_VOL_UP #define SPC_NUM < NUM SPACE #define HRML(k1,k2,k3) &hml LCMD k1 &hml LALT k2 &hml LCTRL k3 #define HRMR(k1,k2,k3) &hmr LCTRL k1 &hmr LALT k2 &hmr LCMD k3 &sk { release-after-ms = <2000>; }; / { macros { bts: bts { compatible = "zmk,behavior-macro-one-param"; #binding-cells = <1>; bindings = <&out OUT_BLE> , <¯o_param_1to2> , <&bt BT_SEL MACRO_PLACEHOLDER> ; }; }; }; / { behaviors { hml: hml { compatible = "zmk,behavior-hold-tap"; flavor = "balanced"; tapping-term-ms = <280>; quick-tap-ms = <175>; // repeat on tap-into-hold require-prior-idle-ms = <150>; #binding-cells = <2>; bindings = <&kp>, <&kp>; hold-trigger-key-positions = ; hold-trigger-on-release; // delay positional check until key-release }; hmr: hmr { compatible = "zmk,behavior-hold-tap"; flavor = "balanced"; tapping-term-ms = <280>; quick-tap-ms = <175>; // repeat on tap-into-hold require-prior-idle-ms = <150>; #binding-cells = <2>; bindings = <&kp>, <&kp>; hold-trigger-key-positions = ; hold-trigger-on-release; // delay positional check until key-release }; }; conditional_layers { compatible = "zmk,conditional-layers"; tri_layer { if-layers = ; then-layer = ; }; }; combos { compatible = "zmk,combos"; combo_clear { timeout-ms = <25>; key-positions = ; bindings = <&kp K_CANCEL>; layers = ; }; combo_escape { timeout-ms = <25>; key-positions = ; bindings = <&kp ESCAPE>; layers = ; }; combo_equal { timeout-ms = <25>; key-positions = ; bindings = <&kp EQUAL>; layers = ; }; combo_tab { timeout-ms = <25>; key-positions = ; bindings = << MODS TAB>; layers = ; }; combo_backspace { timeout-ms = <25>; key-positions = ; bindings = <&kp BACKSPACE>; layers = ; }; combo_enter { timeout-ms = <25>; key-positions = ; bindings = <&kp ENTER>; layers = ; }; combo_minus { timeout-ms = <40>; key-positions = ; bindings = <&kp MINUS>; layers = ; }; combo_underscore { timeout-ms = <40>; key-positions = ; bindings = <&kp UNDERSCORE>; layers = ; }; combo_colon { timeout-ms = <40>; key-positions = ; bindings = <&kp COLON>; layers = ; }; combo_semi { timeout-ms = <40>; key-positions = ; bindings = <&kp SEMI>; layers = ; }; }; keymap { compatible = "zmk,keymap"; base { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ' │ &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SQT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ &kp A HRML(R, S, T) &kp G &kp M HRMR(N, E, I) &kp O //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ Z │ X │ C │ D │ V │ │ K │ H │ , < │ . > │ / ? │ &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &mo NAV &kp LSHFT SPC_NUM &mo SYM // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; sym { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ ~ │ & │ * │ + │ │ │ │ = │ \ │ | │ ` │ &kp TILDE &kp AMPS &kp STAR &kp PLUS &none &none &kp EQUAL &kp BSLH &kp PIPE &kp GRAVE //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ $ │ % │ ^ │ - │ │ : │ │ │ │ │ &none &kp DLLR &kp PRCNT &kp CARET &kp MINUS &kp COLON &kp LPAR &kp LBRC &kp LBKT &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ ! │ @ │ # │ _ │ │ ; │ │ │ │ │ &none &kp EXCL &kp AT &kp HASH &kp UNDER &kp SEMI &kp RPAR &kp RBRC &kp RBKT &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &kp ESC &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; nav { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ ESCAPE │ MUTE │ VOL DOWN │ VOL UP │ │ │ CAPS WORD│ INSERT │ │ │ DEL │ &kp ESC &kp C_MUTE &kp VOL_DN &kp VOL_UP &none &caps_word &kp INS &none &none &kp DEL //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ SHIFT │ CMD │ ALT │ CTRL │ TAB │ │ BACKSPACE│ LEFT │ DOWN │ UP │ RIGHT │ &sk LSHFT &sk LCMD &sk LALT &sk LCTRL &kp TAB &kp BSPC &kp LEFT &kp DOWN &kp UP &kp RIGHT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ PLAY │ PREVIOUS │ NEXT │ │ │ ENTER │ HOME │ PG DOWN │ PG UP │ END │ &none &kp C_PP &kp C_PREV &kp C_NEXT &none &kp ENTER &kp HOME &kp PG_DN &kp PG_UP &kp END //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; winnav { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ │ │ │ │ │ │ │ │ │ &none &kp LG(N7) &kp LG(N8) &kp LG(N9) &none &bts 0 &bts 1 &bts 2 &bts 3 &bts 4 //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ │ │ │ &none &kp LG(N4) &kp LG(N5) &kp LG(N6) &none &none &kp LG(D) &kp LG(N) &kp LG(P) &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ │ │ │ &none &kp LG(N1) &kp LG(N2) &kp LG(N3) &kp LG(N0) &none &none &bt BT_NXT &bt BT_PRV &bt BT_CLR //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; num { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ 7 │ 8 │ 9 │ * │ │ % │ │ │ │ │ &trans &kp N7 &kp N8 &kp N9 &kp STAR &kp PRCNT &trans &trans &trans &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ - │ 4 │ 5 │ 6 │ + │ │ = │ CTRL │ ALT │ CMD │ SHIFT │ &kp MINUS &kp N4 &kp N5 &kp N6 &kp PLUS &kp EQL &sk LCTRL &sk LALT &sk LCMD &sk LSHFT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ 1 │ 2 │ 3 │ / │ │ │ │ │ │ │ &trans &kp N1 &kp N2 &kp N3 &kp FSLH &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp N0 &mo FUN &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; fun { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ F7 │ F8 │ F9 │ │ │ │ │ │ │ │ &none &kp F7 &kp F8 &kp F9 &none &none &none &none &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ F4 │ F5 │ F6 │ │ │ │ CTRL │ ALT │ CMD │ SHIFT │ &none &kp F4 &kp F5 &kp F6 &none &none &sk LCTRL &sk LALT &sk LCMD &sk LSHFT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ F1 │ F2 │ F3 │ │ │ │ F10 │ F11 │ F12 │ │ &none &kp F1 &kp F2 &kp F3 &none &none &kp F10 &kp F11 &kp F12 &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; mods { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ │ │ │ │ │ │ │ │ │ &bootloader &trans &trans &trans &trans &none &none &none &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ - │ │ │ │ │ │ │ CTRL │ ALT │ CMD │ SHIFT │ &trans &trans &trans &trans &trans &none &sk LCTRL &sk LALT &sk LCMD &sk LSHFT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ RALT │ │ │ &trans &trans &trans &trans &trans &none &none &sk RALT &none &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; }; };