// Copyright (c) 2022 The ZMK Contributors // SPDX-License-Identifier: MIT #include #include #include // Layer definitions #define BASE 0 #define SYM 1 #define NUM 2 #define NAV 3 #define SETTINGS 4 // Home row mods macro #define HRML(k1,k2,k3) &ht LALT k1 &ht LCTRL k2 &ht LGUI k3 #define HRMR(k1,k2,k3) &ht RGUI k1 &ht RCTRL k2 &ht LALT k3 #define HRMLS(k1,k2,k3,k4) &ht LSHIFT k1 &ht LALT k2 &ht LCTRL k3 &ht LGUI k4 #define HRMRS(k1,k2,k3,k4) &ht RGUI k1 &ht RCTRL k2 &ht LALT k3 &ht RSHIFT k4 / { behaviors { ht: hold_tap { label = "hold_tap"; compatible = "zmk,behavior-hold-tap"; #binding-cells = <2>; flavor = "tap-preferred"; tapping-term-ms = <220>; quick-tap-ms = <150>; global-quick-tap; bindings = <&kp>, <&kp>; }; }; conditional_layers { compatible = "zmk,conditional-layers"; tri_layer { if-layers = ; then-layer = ; }; }; keymap { compatible = "zmk,keymap"; default_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ │ &kp A HRML(S, D, F) &kp G &kp H HRMR(J, K, L) &kp BSPC //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ Z │ X │ C │ V │ B │ │ N │ M │ , < │ . > │ │ &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp ENTER //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &kp TAB &kp LSHIFT &kp SPACE &to SYM // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; sym_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ / ? │ \ │ ` │ │ : │ ; │ " │ ' │ │ &trans &trans &kp FSLH &kp BACKSLASH &kp GRAVE &kp COLON &kp SEMI &kp DQT &kp SQT &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ^ │ + │ ( │ ) │ @ │ │ | │ - │ = │ _ │ $ │ HRMLS(CARET, PLUS, LPAR, RPAR) &kp AT &kp PIPE HRMRS(MINUS, EQUAL, UNDER, DLLR) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ ! │ # │ { │ } │ ~ │ │ & │ [ │ ] │ % │ * │ &kp EXCL &kp HASH &kp LBRC &kp RBRC &kp TILDE &kp AMPS &kp LBKT &kp RBKT &kp PRCNT &kp ASTRK //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &to BASE &kp ESC &kp BSPC &to NUM // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; num_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ │ │ │ │ │ │ │ │ │ &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ HRMLS(N1, N2, N3, N4) &kp N5 &kp N6 HRMRS(N7, N8, N9, N0) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ │ │ │ &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &to BASE &kp ESC &kp BSPC &to NAV // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; nav_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ │ │ │ │ │ │ │ │ │ │ │ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &trans &trans &trans &trans //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │ HRMLS(F6, F7, F8, F9) &kp F10 &kp LEFT HRMRS(DOWN, UP, RIGHT, ENTER) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ │ │ │ &kp F11 &kp F12 &kp F13 &kp F14 &kp F15 &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &to BASE &kp ESC &kp BSPC &to SYM // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; tri_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ RESET │ │ │ │PROFILE 0 │ │ │ │ │ │ RESET │ &sys_reset &trans &trans &trans &bt BT_SEL 0 &trans &trans &trans &trans &sys_reset //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│BOOTLOADER│ │ │ │PROFILE 1 │ │ │ │ │ │BOOTLOADER│ &bootloader &trans &trans &trans &bt BT_SEL 1 &trans &trans &trans &trans &bootloader //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ CLEAR BT │PROFILE 2 │ │ │ │ │ │ │ &trans &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; }; };