summaryrefslogtreecommitdiff
path: root/config/base.keymap
diff options
context:
space:
mode:
Diffstat (limited to 'config/base.keymap')
-rw-r--r--config/base.keymap119
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
>;