@@ 6,11 6,20 @@
#include <dt-bindings/zmk/bt.h>
// Home row mods macro
-#define HRML(k1,k2,k3,k4) &ht LSHFT k1 &ht LALT k2 &ht LCTRL k3 &ht LGUI k4
-#define HRMR(k1,k2,k3,k4) &ht RGUI k1 &ht RCTRL k2 &ht RALT k3 &ht RSHFT k4
+#define HRML(k1,k2,k3,k4) &hltl 1 k1 &hml LALT k2 &hml LSHFT k3 &hml LCTRL k4
+#define HRMR(k1,k2,k3,k4) &hmr RCTRL k1 &hmr RSHFT k2 &hmr LALT k3 &hltr 1 k4
+
+#define RIGHT_KEYS 5 6 7 8 9 15 16 17 18 19 25 26 27 28 29 32 33
+#define LEFT_KEYS 0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31
/ {
behaviors {
+ prog_caps: prog_caps {
+ compatible = "zmk,behavior-caps-word";
+ #binding-cells = <0>;
+ continue-list = <UNDERSCORE MINUS>;
+ };
+
ht: hold_tap {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
@@ 20,13 29,91 @@
require-prior-idle-ms = <100>;
bindings = <&kp>, <&kp>;
};
+
+ hltl: home_row_layer_toggle_l {
+ compatible = "zmk,behavior-hold-tap";
+ #binding-cells = <2>;
+ flavor = "balanced";
+ require-prior-idle-ms = <100>;
+ tapping-term-ms = <170>;
+ quick-tap-ms = <100>;
+ bindings = <&mo>, <&kp>;
+ hold-trigger-key-positions = <RIGHT_KEYS>;
+ hold-trigger-on-release;
+ };
+
+ hltr: home_row_layer_toggle_r {
+ compatible = "zmk,behavior-hold-tap";
+ #binding-cells = <2>;
+ flavor = "balanced";
+ require-prior-idle-ms = <100>;
+ tapping-term-ms = <170>;
+ quick-tap-ms = <100>;
+ bindings = <&mo>, <&kp>;
+ hold-trigger-key-positions = <LEFT_KEYS>;
+ hold-trigger-on-release;
+ };
+
+ hml: home_row_mod_left {
+ compatible = "zmk,behavior-hold-tap";
+ #binding-cells = <2>;
+ flavor = "balanced";
+ require-prior-idle-ms = <100>;
+ tapping-term-ms = <170>;
+ quick-tap-ms = <100>;
+ bindings = <&kp>, <&kp>;
+ hold-trigger-key-positions = <RIGHT_KEYS>;
+ hold-trigger-on-release;
+ };
+ hmr: home_row_mod_right {
+ compatible = "zmk,behavior-hold-tap";
+ #binding-cells = <2>;
+ flavor = "balanced";
+ require-prior-idle-ms = <100>;
+ tapping-term-ms = <170>;
+ quick-tap-ms = <100>;
+ bindings = <&kp>, <&kp>;
+ hold-trigger-key-positions = <LEFT_KEYS>;
+ hold-trigger-on-release;
+ };
+
+ comma_excl: mod_morph_comma {
+ compatible = "zmk,behavior-mod-morph";
+ #binding-cells = <0>;
+ bindings = <&kp COMMA>, <&kp EXCL>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+ };
+
+ dot_ques: mod_morph_dot {
+ compatible = "zmk,behavior-mod-morph";
+ #binding-cells = <0>;
+ bindings = <&kp DOT>, <&kp QMARK>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+ };
+ };
+
+ combos {
+ compatible = "zmk,combos";
+ combo_tab {
+ timeout-ms = <20>;
+ key-positions = <1 2>;
+ bindings = <&kp TAB>;
+ layers = <0>;
+ };
+
+ combo_caps_word {
+ timeout-ms = <100>;
+ key-positions = <12 17>;
+ bindings = <&prog_caps>;
+ layers = <0>;
+ };
};
conditional_layers {
compatible = "zmk,conditional-layers";
- tri_layer {
- if-layers = <1 2>;
- then-layer = <3>;
+ ctrl_layer {
+ if-layers = <2 3>;
+ then-layer = <4>;
};
};
@@ 36,54 123,71 @@
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
+ &hml LGUI Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &hmr RGUI P
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ' " │
- HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SQT)
+ HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SEMI)
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ 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 FSLH
+ &kp Z &kp X &kp C &kp V &kp B &kp N &hltr 5 M &comma_excl &dot_ques &kp FSLH
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
- < 2 TAB &kp ENTER &kp SPACE < 1 BSPC
+ < 3 ESC < 2 SPACE &kp ENTER &kp BSPC
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
- right_layer {
+ sym_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
- //│ INSERT │ 1 │ 2 │ 3 │ │ │ HOME │ PAGE DN │ PAGE UP │ END │ : │
- &kp INS &kp N1 &kp N2 &kp N3 &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &kp COLON
+ //│ ' │ < │ > │ \ │ ` │ │ & │ _ │ [ │ ] │ % │
+ &kp SQT &kp LT &kp GT &kp BSLH &kp GRAVE &kp AMPS &kp UNDER &kp LBKT &kp RBKT &kp PRCNT
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
- //│ DELETE │ 4 │ 5 │ 6 │ │ │ LEFT │ DOWN │ UP │ RIGHT │ ; │
- &kp DEL &kp N4 &kp N5 &kp N6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp SEMI
+ //│ ! │ - │ + │ = │ # │ │ | │ ~ │ ( │ ) │ " │
+ &kp EXCL &kp MINUS &kp PLUS &kp EQUAL &kp HASH &kp PIPE &kp TILDE &kp LPAR &kp RPAR &kp DQT
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
- //│ CAPS │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ │ │
- &caps_word &kp N7 &kp N8 &kp N9 &kp N0 &trans &trans &trans &trans &trans
+ //│ : │ / │ * │ ^ │ │ │ & │ $ │ { │ } │ @ │
+ &kp COLON &kp FSLH &kp ASTRK &kp CARET &trans &kp AMPS &kp DLLR &kp LBRC &kp RBRC &kp AT
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
- &trans &kp ESC &trans &trans
+ &trans &trans &trans &kp DEL
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
- left_layer {
+ num_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
- //│ │ [ │ { │ } │ │ │ ^ │ ( │ ) │ ] │ ~ │
- &trans &kp LBKT &kp LBRC &kp RBRC &trans &kp CARET &kp LPAR &kp RPAR &kp RBKT &kp TILDE
+ //│ │ │ │ │ │ │ HOME │ PAGE DN │ PAGE UP │ END │ : │
+ &trans &trans &trans &trans &trans &trans &kp N8 &kp N9 &kp N4 &trans
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
- //│ ! │ @ │ # │ $ │ % │ │ * │ - │ = │ \ │ ` │
- &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp ASTRK &kp MINUS &kp EQUAL &kp BSLH &kp GRAVE
+ //│ │ │ │ │ │ │ LEFT │ DOWN │ UP │ RIGHT │ ; │
+ &trans &trans &trans &trans &trans &trans &kp N1 &kp N2 &kp N3 &trans
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
- //│ │ │ │ │ │ │ & │ _ │ + │ │ │ │
- &trans &trans &trans &trans &trans &kp AMPS &kp UNDER &kp PLUS &kp PIPE &trans
+ //│ CAPS │ │ │ │ │ │ │ │ │ │ │
+ &caps_word &trans &trans &trans &trans &trans &kp N7 &kp N6 &kp N5 &trans
+ //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
+ &trans &kp ESC &kp N0 &trans
+ // ╰──────────┴──────────╯ ╰──────────┴──────────╯
+ >;
+ };
+
+ nav_layer {
+ bindings = <
+ //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
+ //│ INSERT │ 1 │ 2 │ 3 │ │ │ HOME │ PAGE DN │ PAGE UP │ END │ │
+ &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &kp INS
+ //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
+ //│ DELETE │ 4 │ 5 │ 6 │ │ │ LEFT │ DOWN │ UP │ RIGHT │ │
+ &trans &trans &trans &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp SEMI
+ //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
+ //│ CAPS │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ │ │
+ &caps_word &trans &trans &trans &trans &trans &trans &trans &trans &kp PSCRN
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&trans &trans &trans &trans
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
- tri_layer {
+ ctrl_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ RESET │ │ │ │PROFILE 0 │ │ │ │ │ │ RESET │
@@ 99,5 203,20 @@
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
+
+ wm_layer {
+ bindings = <
+ //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
+ &kp LG(E) &kp LG(N4) &kp LG(N9) &kp LG(N8) &trans &trans &trans &trans &trans &trans
+ //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
+ &kp LG(W) &kp LG(N3) &kp LG(N2) &kp LG(N1) &trans &trans &trans &trans &trans &trans
+ //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
+ &kp LG(R) &kp LG(N5) &kp LG(N6) &kp LG(N7) &trans &trans &trans &trans &trans &trans
+ //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
+ &trans &trans &trans &trans
+ // ╰──────────┴──────────╯ ╰──────────┴──────────╯
+ >;
+ };
+
};
-};
+};<
\ No newline at end of file