commit ba526b115359577d33f9c5d2b65a22c4edd08c59
parent f51ccf7960d06e887bd30a641252b7180f936d67
Author: Jack Sangdahl <jack@pngu.org>
Date: Mon, 8 Jun 2026 15:19:32 -0600
Correct some pin nomenclature, fix matrix
Diffstat:
4 files changed, 117 insertions(+), 9 deletions(-)
diff --git a/config/sweepable.keymap b/config/sweepable.keymap
@@ -0,0 +1,108 @@
+// 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 "zmk-helpers/helper.h"
+#include "zmk-helpers/key-labels/34.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_LNX UC_SET_LINUX
+
+#define BASE 0
+#define MACOS 1
+#define NUM 2
+#define SYM 3
+#define UTIL 4
+
+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
+ &hrm LALT A &hrm LGUI S &hrm LCTRL D &hrm LSHFT F &kp G &kp H &hrm RSHFT J &hrm RCTRL K &hrm RGUI L &hrm RALT 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(mac_mod_layer,
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ &hrm LCTRL S &hrm LGUI D ___ ___ ___ ___ &hrm RGUI K &hrm RCTRL L ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___
+)
+
+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 ___ ___ ___ ___ ___ &uc SET_LNX &uc SET_MAC &tog MACOS &bt BT_CLR
+ &bt BT_PRV &bt BT_NXT ___ ___ ___ ___ ___ ___ ___ ___
+ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
+ ___ ___ ___ ___
+)
diff --git a/sweepable/boards/sweepable/sweepable-pinctrl.dtsi b/sweepable/boards/sweepable/sweepable-pinctrl.dtsi
@@ -14,8 +14,8 @@
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 7)>,
<NRF_PSEL(TWIM_SCL, 0, 5)>;
- low-power-enable;
bias-pull-up;
+ low-power-enable;
};
};
};
diff --git a/sweepable/boards/sweepable/sweepable.dtsi b/sweepable/boards/sweepable/sweepable.dtsi
@@ -29,10 +29,10 @@
columns = <10>;
rows = <4>;
map = <
- RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
- RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
- RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
- RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8)
+ RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9)
+ RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9)
+ RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9)
+ RC(3,3) RC(3,4) RC(3,5) RC(3,6)
>;
};
diff --git a/sweepable/boards/sweepable/sweepable_left.dts b/sweepable/boards/sweepable/sweepable_left.dts
@@ -10,10 +10,10 @@
diode-direction = "col2row";
row-gpios
- = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
- , <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
- , <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
- , <&gpio1 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ = <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio0 30 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio0 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios