// Copyright (c) 2022 The ZMK Contributors // SPDX-License-Identifier: MIT #include #include #include // Home row mods macro #define HRML(k1,k2,k3) &lht LALT k1 &lht LCTRL k2 &lht LGUI k3 #define HRMR(k1,k2,k3) &rht LGUI k1 &rht LCTRL k2 &rht LALT k3 &sl { release-after-ms = <1500>; }; / { behaviors { lht: left_hold_tap { compatible = "zmk,behavior-hold-tap"; #binding-cells = <2>; flavor = "balanced"; tapping-term-ms = <200>; quick-tap-ms = <200>; require-prior-idle-ms = <100>; bindings = <&kp>, <&kp>; hold-trigger-key-positions = <5 6 7 8 9 15 16 17 18 19 25 26 27 28 29 30 31 32 33>; }; rht: right_hold_tap { compatible = "zmk,behavior-hold-tap"; #binding-cells = <2>; flavor = "balanced"; tapping-term-ms = <200>; quick-tap-ms = <200>; require-prior-idle-ms = <100>; bindings = <&kp>, <&kp>; hold-trigger-key-positions = <0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 32 33>; }; skq: sticky_key_quick_release { compatible = "zmk,behavior-sticky-key"; #binding-cells = <1>; bindings = <&kp>; release-after-ms = <500>; quick-release; ignore-modifiers; }; tds: tap_dance_shift { compatible = "zmk,behavior-tap-dance"; #binding-cells = <0>; tapping-term-ms = <200>; bindings = <&skq LSHIFT>, <&kp CAPS>; }; }; conditional_layers { compatible = "zmk,conditional-layers"; bt_layer { if-layers = <1 4>; then-layer = <5>; }; }; keymap { compatible = "zmk,keymap"; default_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ FUNC │ &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &mo 4 //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ 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 │ ' │ SYM │ BACKSPACE│ &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp SQT &sl 3 &kp BSPC //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &sl 2 &kp SPACE &tds &sl 1 // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; num_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ 4 │ 5 │ 6 │ │ │ │ * │ < │ > │ │ &none &kp N4 &kp N5 &kp N6 &none &none &kp ASTRK &kp LT &kp GT &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ TAB │ 1 │ 2 │ 3 │ ^ │ │ │ = │ , │ . │ / │ &kp TAB &kp N1 &kp N2 &kp N3 &kp CARET &none HRMR(EQUAL, COMMA, DOT) &kp FSLH //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ 7 │ 8 │ 9 │ ~ │ │ │ - │ _ │ + │ │ &none &kp N7 &kp N8 &kp N9 &kp TILDE &none &kp MINUS &kp UNDER &kp PLUS &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp N0 &trans &trans &to 0 // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; nav_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ [ │ ] │ │ │ │ │ │ PAGE DN │ PAGE UP │ │ &none &kp LBKT &kp RBKT &none &none &none &trans &kp PG_DN &kp PG_UP &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ESC │ { │ ( │ ) │ │ │ │ LEFT │ DOWN │ UP │ RIGHT │ &kp ESC HRML(LBRC, LPAR, RPAR) &none &none &kp LARW &kp DARW &kp UARW &kp RARW //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ } │ │ │ │ HOME │ END │ │ │ &none &none &none &kp RBRC &none &none &kp HOME &kp END &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &to 0 &trans &trans &kp ENTER // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; sym_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ @ │ # │ $ │ % │ │ │ │ │ │ │ &none &kp AT &kp HASH &kp DLLR &kp PRCNT &none &none &none &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ` │ ! │ ? │ : │ & │ │ │ │ │ │ │ &kp GRAVE &kp EXCL &kp QMARK &kp COLON &kp AMPS &none &none &none &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ \ │ ; │ " │ | │ │ │ │ │ │ │ &none &kp BSLH &kp SEMI &kp DQT &kp PIPE &none &none &none &to 0 &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; func_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ F4 │ F5 │ F6 │ │ │ │ │ │ │ │ &none &kp F4 &kp F5 &kp F6 &none &none &none &none &none &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ F11 │ F1 │ F2 │ F3 │ │ │ │ │ │ │ │ &kp F11 &kp F1 &kp F2 &kp F3 &none &none &none &none &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ F12 │ F7 │ F8 │ F9 │ │ │ │ │ │ │ │ &kp F12 &kp F7 &kp F8 &kp F9 &none &none &none &none &none &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp F10 &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; bt_layer { bindings = < //╭──────────┬────────────┬────────────┬────────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │PROFILE 4 │ RESET │ BOOTLOADER │ │ │ │BOOTLOADER│ RESET │ │ │ &none &bt BT_SEL 4 &sys_reset &bootloader &none &none &bootloader &sys_reset &none &trans //├──────────┼────────────┼────────────┼────────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │PROFILE 1 │PROFILE 2 │PROFILE 3 │ │ │ │ │ │ │ │ &none &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &none &none &none &none &none &none //├──────────┼────────────┼────────────┼────────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ CLEAR BT │ │ │ │ │ │ │ │ &none &none &none &bt BT_CLR &none &none &none &none &none &none //╰──────────┴────────────┴────────────┼────────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &bt BT_SEL 0 &kp SPACE &kp ENTER &trans // ╰────────────┴──────────╯ ╰──────────┴──────────╯ >; }; }; };