diff options
Diffstat (limited to 'config/base.keymap')
-rw-r--r-- | config/base.keymap | 119 |
1 files changed, 84 insertions, 35 deletions
diff --git a/config/base.keymap b/config/base.keymap index 761536c..148d89d 100644 --- a/config/base.keymap +++ b/config/base.keymap @@ -5,6 +5,8 @@ #include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/mouse.h> +#define COMBO_TIMEOUT_MS 40 + #define DV 0 #define QW 1 #define GAMING 2 @@ -18,17 +20,33 @@ #define SPACEKEY &layer_mo NAV SPACE -#define HM1(k) hm LGUI k -#define HM2(k) hm LALT k -#define HM3(k) hm LCTL k -#define HM4(k) hm LSHFT k +#define HL1(k) hm_left LGUI k +#define HL2(k) hm_left LALT k +#define HL3(k) hm_left LCTL k +#define HL4(k) hm_left LSHFT k +#define HR1(k) hm_right LGUI k +#define HR2(k) hm_right LALT k +#define HR3(k) hm_right LCTL k +#define HR4(k) hm_right LSHFT k #include "extra_keys.h" / { behaviors { - hm: homerow_modifiers { - label = "hmod"; + hm_left: homerow_modifiers_left { + label = "hm_left"; + compatible = "zmk,behavior-hold-tap"; + flavor = "balanced"; + #binding-cells = <2>; + tapping-term-ms = <280>; + quick-tap-ms = <175>; + global-quick-tap-ms = <150>; + bindings = <&kp>, <&kp>; + hold-trigger-key-positions = <RIGHT_KEYS THUMBS>; + hold-trigger-on-release; + }; + hm_right: homerow_modifiers_right { + label = "hmod_right"; compatible = "zmk,behavior-hold-tap"; flavor = "balanced"; #binding-cells = <2>; @@ -36,6 +54,7 @@ quick-tap-ms = <175>; global-quick-tap-ms = <150>; bindings = <&kp>, <&kp>; + hold-trigger-key-positions = <LEFT_KEYS THUMBS>; hold-trigger-on-release; }; layer_mo: layer_modifiers { @@ -49,33 +68,63 @@ bindings = <&mo>, <&kp>; hold-trigger-on-release; }; - /* hm_slow: homerow_mods_slow { */ - /* bincompatible = "zmk,behavior-hold-tap"; */ - /* label = "HMOD_S"; */ - /* #binding-cells = <2>; */ - /* tapping-term-ms = <250>; */ - /* quick-tap-ms = <0>; */ - /* flavor = "tap-preferred"; */ - /* bindings = <&kp>, <&kp>; */ - /* }; */ - /* hm_med: homerow_mods_medium { */ - /* compatible = "zmk,behavior-hold-tap"; */ - /* label = "HMOD_M"; */ - /* #binding-cells = <2>; */ - /* tapping-term-ms = <200>; */ - /* quick-tap-ms = <0>; */ - /* flavor = "tap-preferred"; */ - /* bindings = <&kp>, <&kp>; */ - /* }; */ - /* hm_fast: homerow_mods_fast { */ - /* compatible = "zmk,behavior-hold-tap"; */ - /* label = "HMOD_F"; */ - /* #binding-cells = <2>; */ - /* tapping-term-ms = <160>; */ - /* quick-tap-ms = <0>; */ - /* flavor = "tap-preferred"; */ - /* bindings = <&kp>, <&kp>; */ - /* }; */ + }; + + combos { + compatible = "zmk,combos"; + combo_q_c_x { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <LM1 LM2>; + layers = <QW>; + bindings = <&hm_left LA(LCTRL) LC(B)>; + }; + + combo_q_c_c { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <LM3 LM2>; + layers = <QW>; + bindings = <&hm_left LA(LCTRL) LC(I)>; + }; + + combo_d_c_x { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <LM1 LM2>; + layers = <DV>; + bindings = <&hm_left LA(LCTRL) LC(X)>; + }; + + combo_d_c_c { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <LM3 LM2>; + layers = <DV>; + bindings = <&hm_left LA(LCTRL) LC(C)>; + }; + + combo_tab { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <LT3 LT2>; + layers = <DV QW LOW UPR QVLOW>; + bindings = <&kp TAB>; + }; + combo_bspc { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <RT1 RT2>; + layers = <DV QW LOW UPR QVLOW>; + bindings = <&kp BSPC>; + }; + combo_del { + timeout-ms = <COMBO_TIMEOUT_MS>; + global-quick-tap-ms = <100>; + key-positions = <RT2 RT3>; + layers = <DV QW LOW UPR QVLOW>; + bindings = <&kp DEL>; + }; }; conditional_layers { @@ -102,7 +151,7 @@ // DV - Dvorak layer bindings = < R1X &kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L R1Z - R2X &HM1(A) &HM2(O) &HM3(E) &HM4(U) &kp I &kp D &HM4(H) &HM3(T) &HM2(N) &HM1(S) R2Z + R2X &HL1(A) &HL2(O) &HL3(E) &HL4(U) &kp I &kp D &HR4(H) &HR3(T) &HR2(N) &HR1(S) R2Z R3X &kp SEMI &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z R3Z R4X &kp LSHIFT &mo LOW SPACEKEY TX &mo UPR &kp LSHIFT R4Z >; @@ -114,7 +163,7 @@ // (with setxkbmap us -variant dvorak -option compose:ralt). bindings = < R1X &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P R1Z - R2X &HM1(A) &HM2(S) &HM3(D) &HM4(F) &kp G &kp H &HM4(J) &HM3(K) &HM2(L) &HM1(SEMI) R2Z + R2X &HL1(A) &HL2(S) &HL3(D) &HL4(F) &kp G &kp H &HR4(J) &HR3(K) &HR2(L) &HR1(SEMI) R2Z R3X &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp SLASH R3Z R4X &kp LSHIFT &mo LOW SPACEKEY TX &mo UPR &kp LSHIFT R4Z >; |