// Copyright (c) 2022 The ZMK Contributors // SPDX-License-Identifier: MIT #include #include #include #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 // Layer macros #define BASE 0 #define NAV 1 #define NUM 2 #define SYM 3 #define MSE 4 #define FUNC 5 #define GAME 6 #define BLE 7 &sl { release-after-ms = <1500>; }; &mt { flavor = "tap-preferred"; quick-tap-ms = <200>; require-prior-idle-ms = <100>; }; / { 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 = ; then-layer = ; }; }; 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 FUNC //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ 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│ &mt LSFT Z &kp X &kp C &kp D &kp V &kp K &kp H &kp SQT &sl SYM &kp BSPC //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &sl NAV &kp SPACE &tds &sl NUM // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; nav_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ [ │ ] │ │ │ │ │ DELETE │ PAGE DN │ PAGE UP │ │ &none &kp LBKT &kp RBKT &none &none &none &kp DEL &kp PG_DN &kp PG_UP &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ESC │ { │ ( │ ) │ │ │ ZOOM IN │ LEFT │ DOWN │ UP │ RIGHT │ &kp ESC HRML(LBRC, LPAR, RPAR) &none &kp LC(EQUAL) &kp LARW &kp DARW &kp UARW &kp RARW //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ INSERT │ DELETE │ } │ │ │ ZOOM OUT │ HOME │ END │ MOUSE │ │ &kp LSFT &kp INS &kp DEL &kp RBRC &none &kp LC(MINUS) &kp HOME &kp END &to MSE &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &to 0 &trans &trans &kp ENTER // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; 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 │ ~ │ │ │ - │ _ │ + │ │ &kp LSFT &kp N7 &kp N8 &kp N9 &kp TILDE &none &kp MINUS &kp UNDER &kp PLUS &mt LSFT BSPC //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp N0 &trans &trans &to BASE // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; 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 //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ \ │ ; │ " │ | │ │ │ │ │BASE LAYER│ │ &none &kp BSLH &kp SEMI &kp DQT &kp PIPE &none &none &none &to BASE &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; mse_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ │ │ │ │ │SCRL LEFT │SCRL DOWN │SCRL UP │SCRL RIGHT│ &none &none &none &none &none &none &msc MOVE_LEFT &msc MOVE_DOWN &msc MOVE_UP &msc MOVE_RIGHT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ CONTROL │ MIDDLE │ RIGHT │ LEFT │ │ │ │ MSE LEFT │ MSE DOWN │ MSE UP │ MSE RIGHT│ &kp LCTRL &mkp MCLK &mkp RCLK &mkp LCLK &none &none &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_UP &mmv MOVE_RIGHT //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ALT │ │ │ │ │ │ │ LEFT │ RIGHT │BASE LAYER│ │ &kp LALT &none &none &none &none &none &mkp LCLK &mkp RCLK &to BASE &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp LGUI &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; func_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬────────────┬────────────┬──────────┬──────────╮ //│ GAME │ F4 │ F5 │ F6 │PRINT SCRN│ │ VOL MUTE │ VOL DOWN │ VOL UP │ │ │ &to GAME &kp F4 &kp F5 &kp F6 &kp PSCRN &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP &none &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼────────────┼────────────┼──────────┼──────────┤ //│ F11 │ F1 │ F2 │ F3 │BRIGHT UP │ │PLAY/PAUSE│ PREV SONG │ NEXT SONG │ │ │ &kp F11 &kp F1 &kp F2 &kp F3 &kp C_BRI_UP &kp C_PP &kp C_PREV &kp C_NEXT &none &none //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼────────────┼────────────┼──────────┼──────────┤ //│ F12 │ F7 │ F8 │ F9 │BRIGHT DWN│ │ │ │ │ │ │ &kp F12 &kp F7 &kp F8 &kp F9 &kp C_BRI_DN &none &none &none &none &none //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼────────────┼────────────┴──────────┴──────────╯ &kp F10 &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴────────────╯ >; }; game_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ ESC │ Q │ W │ E │ R │ │ T │ Y │ U │ I │ O │ &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ SHIFT │ A │ S │ D │ F │ │ G │ UP │ H │ J │ K │ &kp LSFT &kp A &kp S &kp D &kp F &kp G &kp UARW &kp H &kp J &kp K //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ CTRL │ Z │ X │ C │ V │ │ LEFT │ DOWN │ RIGHT │ B │ BACKSPACE│ &kp LCTRL &kp Z &kp X &kp C &kp V &kp LARW &kp DARW &kp RARW &kp B &kp BSPC //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp TAB &kp SPACE &kp ENTER &to BASE // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; 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 //├──────────┼────────────┼────────────┼────────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ OUT TO USB │ OUT TO BLE │ CLEAR BT │ │ │ │ │ │ │ │ &none &out OUT_USB &out OUT_BLE &bt BT_CLR &none &none &none &none &none &none //╰──────────┴────────────┴────────────┼────────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &bt BT_SEL 0 &trans &trans &trans // ╰────────────┴──────────╯ ╰──────────┴──────────╯ >; }; }; };