commit 215302c2d9c4e71ac75c3593428e688541a40a70
parent 4703f9ceaac599e5e73fa959094d02e676e5e22b
Author: Jack Sangdahl <jack@pngu.org>
Date: Tue, 10 Feb 2026 09:00:39 -0700
Migrate keymap configuration to zmk-helpers
Diffstat:
| M | config/blecorne.keymap | | | 163 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ |
| M | config/flake.keymap | | | 140 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
| M | config/revxlp.keymap | | | 139 | +++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- |
| D | config/util.h | | | 66 | ------------------------------------------------------------------ |
4 files changed, 299 insertions(+), 209 deletions(-)
diff --git a/config/blecorne.keymap b/config/blecorne.keymap
@@ -1,56 +1,119 @@
// Copyright 2025 jack@pngu.org
// SPDX-License-Identifier: MIT
#include <behaviors.dtsi>
+#include <behaviors/unicode.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
-#include "util.h"
-
-/ {
- chosen {
- zmk,physical-layout = &foostan_corne_5col_layout;
- };
-
- keymap {
- compatible = "zmk,keymap";
- 0 {
- bindings = <
- &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
- HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SEMI)
- &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
- &none < 1 ESC &kp SPACE &kp BSPC &mo 2 &none
- >;
- };
- 1 {
- bindings = <
- &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
- &trans &trans &updir &recall &kp TAB &kp LEFT HRMR(DOWN, UP, RIGHT, CAPS)
- &kp C_VOL_DN &kp C_PP &trans &trans &trans &trans &trans &trans &trans &kp C_VOL_UP
- &trans &trans &trans &trans &mo 3 &trans
- >;
- };
- 2 {
- bindings = <
- &kp GRAVE &leq &geq &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
- &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH HRMR(LPAR, RPAR, SQT, DQT)
- &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON &trans &trans &trans
- &trans &trans &trans &trans &trans &trans
- >;
- };
- 3 {
- bindings = <
- &bt BT_NXT &none &none &none &none &none &none &none &none &bt BT_CLR
- &bt BT_PRV &none &none &none &none &none &none &none &none &bootloader
- &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
- &trans &trans &trans &trans &trans &trans
- >;
- };
- };
-
- combos {
- compatible = "zmk,combos";
- // name output pos.
- COMBO(df_unds, &kp UNDER, 15 16)
- COMBO(jk_entr, &kp ENTER, 19 20)
- COMBO(fj_capw, &caps_word, 16 19)
- };
+
+#include "zmk-helpers/helper.h"
+#include "zmk-helpers/key-labels/36.h"
+#include "zmk-unicode/keys-extra.h"
+
+#undef COMBO_TERM
+#define COMBO_TERM 50
+
+#define ___ &trans
+#define xxx &none
+
+#define SET_MAC UC_SET_MACOS
+#define SET_LIN UC_SET_MACOS
+
+#define BASE 0
+#define LINUX 1
+#define MACOS 2
+#define NUM 3
+#define SYM 4
+#define UTIL 5
+
+ZMK_APPLY_MATRIX_TRANSFORM(foostan_corne_5col_layout)
+
+ZMK_HOLD_TAP(hrm,
+ flavor = "tap-preferred";
+ tapping-term-ms = <130>;
+ quick-tap-ms = <160>;
+ bindings = <&kp>, <&kp>;
+)
+
+&uc {
+ default-mode = <UC_MODE_LINUX>;
+ minimum-length = <0>;
+ linux-key = <LC(LS(U))>;
+ macos-key = <LALT>;
};
+
+< {
+ tapping-term-ms = <100>;
+};
+
+ZMK_CONDITIONAL_LAYER(tri_layer_util, NUM SYM, UTIL)
+
+ZMK_TAP_DANCE(ply_nxt_prv,
+ tapping-term-ms = <200>;
+ bindings = <&kp C_PLAY>, <&kp C_NEXT>, <&kp C_PREV>;
+)
+
+ZMK_MOD_MORPH(bs_del_num,
+ bindings = <&kp BSPC>, <&kp DEL>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+ZMK_MOD_MORPH(vol_up_dn,
+ bindings = <&kp C_VOL_UP>, <&kp C_VOL_DN>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+ZMK_MOD_MORPH(dash_mins,
+ bindings = <&kp MINUS>, <&uc UC_EM_DASH>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+
+ZMK_MACRO(updir, bindings = <&kp DOT &kp DOT &kp FSLH>;)
+ZMK_MACRO(leq, bindings = <&kp LT &kp EQUAL>;)
+ZMK_MACRO(geq, bindings = <&kp GT &kp EQUAL>;)
+ZMK_MACRO(pl_asgn, bindings = <&kp PLUS &kp EQUAL>;)
+ZMK_MACRO(recall, bindings = <&kp DLLR &kp UNDER>;)
+
+ZMK_COMBO(df_unds, &kp UNDER, LM2 LM1, ALL)
+ZMK_COMBO(jk_entr, &kp ENTER, RM1 RM2, ALL)
+ZMK_COMBO(fj_cpwd, &caps_word, LM1 RM1, ALL)
+
+ZMK_LAYER(base_layer,
+ &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
+ &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI
+ &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
+ ___ < NUM ESC &kp SPACE &bs_del_num &mo SYM ___
+)
+
+ZMK_LAYER(linux_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LGUI S &hrm LCTRL D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RCTRL K &hrm RGUI L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(macos_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LCTRL S &hrm LGUI D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RGUI K &hrm RCTRL L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(numbers_layer,
+ &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
+ ___ ___ &updir &recall &kp TAB &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp CAPS
+ &vol_up_dn &ply_nxt_prv ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(symbols_layer,
+ &kp GRAVE &leq &geq &dash_mins &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
+ &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH &kp LPAR &kp RPAR &kp SQT &kp DQT
+ &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(utility_layer,
+ &bt BT_CLR &bt BT_NXT ___ ___ ___ ___ ___ &tog LINUX &tog MACOS &bt BT_CLR
+ &bootloader &bt BT_CLR ___ ___ ___ ___ ___ &uc SET_LIN &uc SET_MAC &bootloader
+ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
+ ___ ___ ___ ___ ___ ___
+)
diff --git a/config/flake.keymap b/config/flake.keymap
@@ -3,51 +3,97 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
-#include "util.h"
-
-/ {
- keymap {
- compatible = "zmk,keymap";
- 0 {
- bindings = <
- &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
- HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SEMI)
- &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
- &none &none &none < 1 ESC &kp SPACE &kp BSPC &mo 2 &none &none &none
- >;
- };
- 1 {
- bindings = <
- &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
- &trans &trans &updir &recall &kp TAB &kp LEFT HRMR(DOWN, UP, RIGHT, CAPS)
- &kp C_VOL_DN &kp C_PP &trans &trans &trans &trans &trans &trans &trans &kp C_VOL_UP
- &trans &trans &trans &trans &trans &trans &mo 3 &trans &trans &trans
- >;
- };
- 2 {
- bindings = <
- &kp GRAVE &leq &geq &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
- &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH HRMR(LPAR, RPAR, SQT, DQT)
- &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON &trans &trans &trans
- &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
- >;
- };
- 3 {
- bindings = <
- &bt BT_NXT &none &none &none &none &none &none &none &none &bt BT_CLR
- &bt BT_PRV &none &none &none &none &none &none &none &none &bootloader
- &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
- &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
- >;
- };
- };
-
- combos {
- compatible = "zmk,combos";
- // name output pos.
- COMBO(df_unds, &kp UNDER, 12 13)
- COMBO(jk_entr, &kp ENTER, 16 17)
- COMBO(fj_capw, &caps_word, 13 16)
-
- };
+
+#include "zmk-helpers/helper.h"
+#include "zmk-helpers/key-labels/36.h"
+
+#undef COMBO_TERM
+#define COMBO_TERM 50
+
+#define ___ &trans
+
+#define BASE 0
+#define LINUX 1
+#define MACOS 2
+#define NUM 3
+#define SYM 4
+#define UTIL 5
+
+ZMK_HOLD_TAP(hrm,
+ flavor = "tap-preferred";
+ tapping-term-ms = <130>;
+ quick-tap-ms = <160>;
+ bindings = <&kp>, <&kp>;
+)
+
+< {
+ tapping-term-ms = <100>;
};
+
+ZMK_CONDITIONAL_LAYER(tri_layer_util, NUM SYM, UTIL)
+
+ZMK_TAP_DANCE(ply_nxt_prv,
+ tapping-term-ms = <200>;
+ bindings = <&kp C_PLAY>, <&kp C_NEXT>, <&kp C_PREV>;
+)
+
+ZMK_MOD_MORPH(bs_del_num,
+ bindings = <&kp BSPC>, <&kp DEL>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+ZMK_MOD_MORPH(vol_up_dn,
+ bindings = <&kp C_VOL_UP>, <&kp C_VOL_DN>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+ZMK_MACRO(updir, bindings = <&kp DOT &kp DOT &kp FSLH>;)
+ZMK_MACRO(leq, bindings = <&kp LT &kp EQUAL>;)
+ZMK_MACRO(geq, bindings = <&kp GT &kp EQUAL>;)
+ZMK_MACRO(pl_asgn, bindings = <&kp PLUS &kp EQUAL>;)
+ZMK_MACRO(recall, bindings = <&kp DLLR &kp UNDER>;)
+
+ZMK_COMBO(df_unds, &kp UNDER, LM2 LM1, ALL)
+ZMK_COMBO(jk_entr, &kp ENTER, RM1 RM2, ALL)
+ZMK_COMBO(fj_cpwd, &caps_word, LM1 RM1, ALL)
+
+ZMK_LAYER(base_layer,
+ &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
+ &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI
+ &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
+ < NUM ESC &kp SPACE ___ ___ &bs_del_num &mo SYM
+)
+
+ZMK_LAYER(linux_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LGUI S &hrm LCTRL D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RCTRL K &hrm RGUI L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(macos_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LCTRL S &hrm LGUI D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RGUI K &hrm RCTRL L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(numbers_layer,
+ &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
+ ___ ___ &updir &recall &kp TAB &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp CAPS
+ &vol_up_dn &ply_nxt_prv ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(symbols_layer,
+ &kp GRAVE &leq &geq &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
+ &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH &kp LPAR &kp RPAR &kp SQT &kp DQT
+ &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(utility_layer,
+ &bt BT_CLR &bt BT_NXT ___ ___ ___ ___ ___ &tog LINUX &tog MACOS &bt BT_CLR
+ &bootloader &bt BT_CLR ___ ___ ___ ___ ___ ___ ___ &bootloader
+ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
+ ___ ___ ___ ___ ___ ___
+)
diff --git a/config/revxlp.keymap b/config/revxlp.keymap
@@ -3,50 +3,97 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
-#include "util.h"
-
-/ {
- keymap {
- compatible = "zmk,keymap";
- 0 {
- bindings = <
- &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
- HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SEMI)
- &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
- &none < 1 ESC &kp SPACE &kp BSPC &mo 2 &none
- >;
- };
- 1 {
- bindings = <
- &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
- &trans &trans &updir &recall &kp TAB &kp LEFT HRMR(DOWN, UP, RIGHT, CAPS)
- &kp C_VOL_DN &kp C_PP &trans &trans &trans &trans &trans &trans &trans &kp C_VOL_UP
- &trans &trans &trans &trans &mo 3 &trans
- >;
- };
- 2 {
- bindings = <
- &kp GRAVE &leq &geq &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
- &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH HRMR(LPAR, RPAR, SQT, DQT)
- &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON &trans &trans &trans
- &trans &trans &trans &trans &trans &trans
- >;
- };
- 3 {
- bindings = <
- &bt BT_NXT &none &none &none &none &none &none &none &none &bt BT_CLR
- &bt BT_PRV &none &none &none &none &none &none &none &none &bootloader
- &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
- &trans &trans &trans &trans &trans &trans
- >;
- };
- };
-
- combos {
- compatible = "zmk,combos";
- // name output pos.
- COMBO(df_unds, &kp UNDER, 15 16)
- COMBO(jk_entr, &kp ENTER, 19 20)
- COMBO(fj_capw, &caps_word, 16 19)
- };
+
+#include "zmk-helpers/helper.h"
+#include "zmk-helpers/key-labels/36.h"
+
+#undef COMBO_TERM
+#define COMBO_TERM 50
+
+#define ___ &trans
+
+#define BASE 0
+#define LINUX 1
+#define MACOS 2
+#define NUM 3
+#define SYM 4
+#define UTIL 5
+
+ZMK_HOLD_TAP(hrm,
+ flavor = "tap-preferred";
+ tapping-term-ms = <130>;
+ quick-tap-ms = <160>;
+ bindings = <&kp>, <&kp>;
+)
+
+< {
+ tapping-term-ms = <100>;
};
+
+ZMK_CONDITIONAL_LAYER(tri_layer_util, NUM SYM, UTIL)
+
+ZMK_TAP_DANCE(ply_nxt_prv,
+ tapping-term-ms = <200>;
+ bindings = <&kp C_PLAY>, <&kp C_NEXT>, <&kp C_PREV>;
+)
+
+ZMK_MOD_MORPH(bs_del_num,
+ bindings = <&kp BSPC>, <&kp DEL>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+ZMK_MOD_MORPH(vol_up_dn,
+ bindings = <&kp C_VOL_UP>, <&kp C_VOL_DN>;
+ mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+ZMK_MACRO(updir, bindings = <&kp DOT &kp DOT &kp FSLH>;)
+ZMK_MACRO(leq, bindings = <&kp LT &kp EQUAL>;)
+ZMK_MACRO(geq, bindings = <&kp GT &kp EQUAL>;)
+ZMK_MACRO(pl_asgn, bindings = <&kp PLUS &kp EQUAL>;)
+ZMK_MACRO(recall, bindings = <&kp DLLR &kp UNDER>;)
+
+ZMK_COMBO(df_unds, &kp UNDER, LM2 LM1, ALL)
+ZMK_COMBO(jk_entr, &kp ENTER, RM1 RM2, ALL)
+ZMK_COMBO(fj_cpwd, &caps_word, LM1 RM1, ALL)
+
+ZMK_LAYER(base_layer,
+ &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
+ &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI
+ &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
+ ___ < NUM ESC &kp SPACE &bs_del_num &mo SYM ___
+)
+
+ZMK_LAYER(linux_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LGUI S &hrm LCTRL D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RCTRL K &hrm RGUI L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(macos_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &hrm LALT A &hrm LCTRL S &hrm LGUI D &hrm LSHFT F ___ ___ &hrm RSHFT J &hrm RGUI K &hrm RCTRL L &hrm RALT SEMI
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(numbers_layer,
+ &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
+ ___ ___ &updir &recall &kp TAB &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp CAPS
+ &vol_up_dn &ply_nxt_prv ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(symbols_layer,
+ &kp GRAVE &leq &geq &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &kp BSLH
+ &kp EXCL &kp STAR &pl_asgn &kp EQUAL &kp AMPS &kp HASH &kp LPAR &kp RPAR &kp SQT &kp DQT
+ &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON ___ ___ ___
+ ___ ___ ___ ___ ___ ___
+)
+
+ZMK_LAYER(utility_layer,
+ &bt BT_CLR &bt BT_NXT ___ ___ ___ ___ ___ &tog LINUX &tog MACOS &bt BT_CLR
+ &bootloader &bt BT_CLR ___ ___ ___ ___ ___ ___ ___ &bootloader
+ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
+ ___ ___ ___ ___ ___ ___
+)
diff --git a/config/util.h b/config/util.h
@@ -1,66 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: MIT
-
-// clang-format off
-#define COMBO(name, keypress, keypos) \
-combo_##name { \
- timeout-ms = <50>; \
- bindings = <keypress>; \
- key-positions = <keypos>; \
-};
-
-#define HRML(k1,k2,k3,k4) &hm LALT k1 &hm LGUI k2 &hm LCTRL k3 &hm LSHFT k4
-#define HRMR(k1,k2,k3,k4) &hm RSHFT k1 &hm RCTRL k2 &hm RGUI k3 &hm RALT k4
-
-< {
- tapping-term-ms = <100>;
-};
-
-/ {
- behaviors {
- hm: homerow_mods {
- compatible = "zmk,behavior-hold-tap";
- #binding-cells = <2>;
- tapping-term-ms = <130>;
- quick-tap-ms = <160>;
- flavor = "tap-preferred";
- bindings = <&kp>, <&kp>;
- };
-
- pnp: play_next_prev {
- compatible = "zmk,behavior-tap-dance";
- #binding-cells = <0>;
- tapping-term-ms = <210>;
- bindings = <&kp C_PLAY>, <&kp C_NEXT>, <&kp C_PREV>;
- };
- };
-
- macros {
- updir: updir {
- compatible = "zmk,behavior-macro";
- #binding-cells = <0>;
- bindings = <¯o_tap &kp DOT &kp DOT &kp FSLH>;
- };
- leq: leq {
- compatible = "zmk,behavior-macro";
- #binding-cells = <0>;
- bindings = <¯o_tap &kp LT &kp EQUAL>;
- };
- geq: geq {
- compatible = "zmk,behavior-macro";
- #binding-cells = <0>;
- bindings = <¯o_tap &kp GT &kp EQUAL>;
- };
- pl_asgn: pl_asgn {
- compatible = "zmk,behavior-macro";
- #binding-cells = <0>;
- bindings = <¯o_tap &kp PLUS &kp EQUAL>;
- };
- recall: recall {
- compatible = "zmk,behavior-macro";
- #binding-cells = <0>;
- bindings = <¯o_tap &kp DLLR &kp UNDER>;
- };
- };
-};
-// clang-format on