/* * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ #include #include #include &mt { flavor = "tap-preferred"; tapping_term_ms = <200>; }; &sk { quick-release; release-after-ms = <2000>; }; /* Layers */ #define ALPH 0 #define SYM 1 #define NUM 2 #define SYS 3 #define BT 4 #define GAME 5 / { combos { compatible = "zmk,combos"; combo_game { timeout-ms = <30>; key-positions = <0 1 2 3>; bindings = <&to GAME>; }; combo_sys { timeout-ms = <30>; key-positions = <6 7 8>; bindings = <&to SYS>; }; combo_num { timeout-ms = <30>; key-positions = <15 16>; bindings = <&to NUM>; }; combo_bt { timeout-ms = <30>; key-positions = <13 14>; bindings = <&to BT>; layers = ; }; combo_term { timeout-ms = <50>; key-positions = <30 33>; bindings = <&kp LG(ENTER)>; }; combo_lenter { timeout-ms = <50>; key-positions = <30 19>; bindings = <&kp ENTER>; }; combo_renter { timeout-ms = <50>; key-positions = <33 19>; bindings = <&kp ENTER>; }; combo_layer0 { timeout-ms = <50>; key-positions = <31 32>; bindings = <&to 0>; }; }; behaviors { hm: homerow_mods { compatible = "zmk,behavior-hold-tap"; label = "HOMEROW_MODS"; #binding-cells = <2>; tapping-term-ms = <200>; quick_tap_ms = <0>; flavor = "tap-preferred"; bindings = <&kp>, <&kp>; }; hl: homerow_layers { compatible = "zmk,behavior-hold-tap"; label = "HOMEROW_LAYERS"; #binding-cells = <2>; tapping-term-ms = <220>; quick_tap_ms = <0>; flavor = "tap-preferred"; bindings = <&sl>, <&kp>; }; sr: shift_layer { compatible = "zmk,behavior-hold-tap"; label = "SHIFT_LAYER"; #binding-cells = <2>; tapping-term-ms = <300>; quick_tap_ms = <0>; flavor = "tap-preferred"; bindings = <&kp>, <&to>; retro-tap; }; shk: shift_key { compatible = "zmk,behavior-mod-morph"; label = "SHIFT_KEY"; #binding-cells = <2>; bindings = <&kp>, <&kp>; mods = <(MOD_LSFT|MOD_RSFT)>; }; }; keymap { compatible = "zmk,keymap"; alpha1 { bindings = < &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp ESC &hm LCTRL A &hm LGUI R &hm LALT S &kp T &kp D &hm EQUAL H &kp N &hm RALT E &hm RGUI I &hm RCTRL O &hl NUM Z &kp X &kp C &kp V &kp B &hm QMARK K &hm COLON M &hm MINUS COMMA &hm EXCL DOT &hm UNDER SLASH &hm LCTRL TAB &hm LSHIFT ENTER &hl SYM SPACE &hl SYS BSPC >; }; sym1 { bindings = < &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PERCENT &kp CARET &kp AMPS &kp STAR &kp TILDE &kp EQUAL &kp MINUS &kp LBKT &kp LBRC &kp LPAR &kp LT &kp GT &kp RPAR &kp RBRC &kp RBKT &kp PLUS &to SYS &kp QMARK &kp HOME &kp DEL &kp SQT &kp DQT &kp COLON &kp END &kp UNDER &trans &trans &trans &trans &trans >; }; num1 { bindings = < &none &kp C_PLAY_PAUSE &kp C_PREV &kp C_NEXT &none &kp SLASH &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp MINUS &none &kp C_VOL_UP &kp C_VOL_DN &none &kp COMMA &kp STAR &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp PLUS &none &none &to BT &to GAMING &kp DOT &kp EQUAL &kp NUM_1 &kp NUM_2 &kp NUM_3 &trans &trans &trans &trans &kp NUM_0 >; }; sys { bindings = < &kp LG(NUM_1) &kp LG(NUM_2) &kp LG(NUM_3) &kp LG(NUM_4) &kp LG(NUM_5) &none &hm LC(V) LC(C) &kp RC(TAB) &kp Q &trans &kp LG(LS(Q)) &kp LG(D) &hm LG(E) LG(W) &kp LG(F) &kp LGUI &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &kp LG(LS(MINUS)) &kp HOME &kp END &kp LG(MINUS) &kp LG(ENTER) &kp DEL &kp PG_UP &kp PG_DN &none &trans &trans &trans &trans &trans >; }; bluetooth { bindings = < &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &bt BT_NXT &bt BT_PRV &bt BT_SEL 0 &none &none &bt BT_CLR &none &none &none &none &none &to ALPH &none &none >; }; gaming { bindings = < &kp Q &kp W &kp E &kp R &kp NUM_1 &none &none &none &none &none &kp A &kp S &kp D &kp F &kp NUM_2 &none &none &none &none &none &kp Z &kp X &kp C &kp V &kp NUM_3 &none &none &none &none &none &none &to ALPH &none &none >; }; }; };