aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/cradio.keymap30
1 files changed, 25 insertions, 5 deletions
diff --git a/config/cradio.keymap b/config/cradio.keymap
index 3734a96..83f0c92 100644
--- a/config/cradio.keymap
+++ b/config/cradio.keymap
@@ -12,6 +12,12 @@
#define SETTINGS 3
// Home row mods macro
+#define lalt(ht) &ht LALT 0
+#define lctrl(ht) &ht LCTRL 0
+#define lgui(ht) &ht LGUI 0
+#define rctrl(ht) &ht RCTRL 0
+#define rgui(ht) &ht RGUI 0
+
#define HRML(k1,k2,k3) &lht LALT k1 &lht LCTRL k2 &lht LGUI k3
#define HRMR(k1,k2,k3) &rht RGUI k1 &rht RCTRL k2 &rht LALT k3
@@ -28,11 +34,21 @@
20 21 22 23 24
#define COMBO(code, name, k1, k2) \
- code: name { \
+ _##code: _##name { \
compatible = "zmk,behavior-mod-morph"; \
#binding-cells = <0>; \
bindings = <&kp k1>, <&kp k2>; \
- mods = <(LSHIFT)>; \
+ mods = <(MOD_LSFT)>; \
+ }; \
+ code: name { \
+ compatible = "zmk,behavior-hold-tap"; \
+ #binding-cells = <2>; \
+ flavor = "tap-preferred"; \
+ tapping-term-ms = <175>; \
+ require-prior-idle-ms = <100>; \
+ quick-tap-ms = <50>; \
+ bindings = <&kp>, <&_##code>; \
+ hold-trigger-key-positions = <RHS 31>; \
}
/ {
@@ -75,6 +91,7 @@
// [ ~
COMBO(lbrktld, leftbracket_tilde, LEFT_BRACKET, TILDE);
+
// ] `
COMBO(rbrkgrv, rightbracket_grave, RIGHT_BRACKET, GRAVE);
@@ -139,7 +156,7 @@
&kp B &kp Y &kp O &kp U &kp Z &kp Q &kp L &kp D &kp W &kp V
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ C │ I │ E │ A │ , < │ │ . > │ H │ T │ S │ N │
- &kp C HRML(I, E, A) &kp COMMA &kp DOT HRMR(H, T, S) &kp N
+ &kp C HRML(I, E, A) &kp COMMA &kp DOT HRMR(H, T, S) &kp N
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ G │ X │ J │ K │ BSPC │ │ ENTER │ R │ M │ F │ P │
&kp G &kp X &kp J &kp K &kp BSPC &kp ENTER &kp R &kp M &kp F &kp P
@@ -150,6 +167,8 @@
};
// SYM
+ // Same as the howrow mods in BASE and NAV laver, but with different
+ // hold-tap behaviours, to accomodate the shift-behaviour.
sym_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
@@ -157,10 +176,11 @@
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ ^ │ = + │ [ ~ │ ( { │ , < │ │ . > │ ) } │ ] ` │ * & │ $ │
- &kp CARET HRML(EQUAL, lbrktld, lparbrc) &trans &trans HRMR(rparbrc, rbrkgrv, astamp) &kp DLLR
+ &kp CARET &lht LALT EQUAL lctrl(lbrktld) lgui(lparbrc) &trans
+ &trans rgui(rparbrc) rctrl(rbrkgrv) lalt(astamp) &kp DLLR
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ ! @ │ # │ / ? │ ; : │ BSPS │ │ ENTER │ - _ │ ' " │ % │ \ | │
- &excat &kp POUND &kp FSLH &kp SEMI &trans &trans &kp MINUS &kp SQT &kp PRCNT &kp BSLH
+ &_excat &kp POUND &kp FSLH &kp SEMI &trans &trans &kp MINUS &kp SQT &kp PRCNT &kp BSLH
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
SHIFT &trans &trans &to NAV
// ╰──────────┴──────────╯ ╰──────────┴──────────╯