// Copyright (c) 2022 The ZMK Contributors // SPDX-License-Identifier: MIT #include #include #include #define AS(keycode) &as LS(keycode) keycode // Autoshift Macro #define VOL_UP &kp C_VOL_UP #define VOL_DN &kp C_VOL_DN / { behaviors { as: auto_shift { compatible = "zmk,behavior-hold-tap"; label = "AUTO_SHIFT"; #binding-cells = <2>; tapping_term_ms = <200>; // How long in milliseconds the key must be held to trigger a hold quick_tap_ms = <100>; // Tap twice within this period (in milliseconds) to trigger a tap, even when held (default -1 = off) flavor = "tap-preferred"; bindings = <&kp>, <&kp>; }; }; conditional_layers { compatible = "zmk,conditional-layers"; tri_layer { if-layers = <1 2>; then-layer = <3>; }; }; keymap { compatible = "zmk,keymap"; default_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │ AS(Q) AS(W) AS(E) AS(R) AS(T) AS(J) AS(L) AS(U) AS(Y) AS(SEMI) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ AS(A) AS(R) AS(S) AS(T) AS(G) AS(M) AS(N) AS(E) AS(I) AS(O) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ Z │ X │ C │ D │ V │ │ K │ H │ , < │ . > │ / ? │ AS(Z) AS(X) AS(C) AS(D) AS(V) AS(K) AS(H) AS(COMMA) AS(DOT) AS(FSLH) //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ // │ ESC │ SPC │ │ BSPC │ ENT │ &kp ESC < 1 SPACE < 2 BSPC &kp ENTER // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; left_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ AS(N1) AS(N2) AS(N3) AS(N4) AS(N5) AS(N6) AS(N7) AS(N8) AS(N9) AS(N0) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ LEFT │ DOWN │ UP │ RIGHT │ &trans &trans &trans &trans &trans &trans &kp LARW &kp DARW &kp UARW &kp RARW //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ │ │ │ │ │ │ │ │ &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; right_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ PRV TRCK │ VOL UP │ VOL DOWN │ NXT TRCK │ TAB │ │ - _ │ = + │ { [ │ } ] │ \ | │ &kp C_PREV VOL_UP VOL_DN &kp C_NEXT &kp TAB AS(MINUS) AS(EQUAL) AS(LBKT) AS(RBKT) AS(BSLH) //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │PLY/PAUSE │ MUTE │ │ │ │ F11 │ ` ~ │ DEL │ ' " │ F12 │ &trans &kp C_PP &kp C_MUTE &trans &trans &kp F11 AS(GRAVE) &kp DEL AS(SQT) &kp F12 //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; tri_layer { bindings = < //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ //│ RESET │ │ │ │PROFILE 0 │ │ │ │ │ │ RESET │ &reset &trans &trans &trans &bt BT_SEL 0 &trans &trans &trans &trans &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 // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; }; };