DEVELOPMENT ENVIRONMENT

~liljamo/nix-zmk

fbd7d44821eba158ab99cd3bf01cb2a144942241 — Jonni Liljamo 16 days ago d5d44b2
feat(lily58): migrated old to here, semi-working
5 files changed, 162 insertions(+), 0 deletions(-)

A config/lily58.conf
A config/lily58.dtsi
A config/lily58.keymap
M flake.nix
A patches/001-lily58-pin.patch
A config/lily58.conf => config/lily58.conf +4 -0
@@ 0,0 1,4 @@
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y
CONFIG_ZMK_WIDGET_WPM_STATUS=y
#CONFIG_ZMK_WIDGET_BONGO_CAT=y

A config/lily58.dtsi => config/lily58.dtsi +22 -0
@@ 0,0 1,22 @@
&i2c0 {
    status = "okay";
    sda-pin = <5>;
    scl-pin = <6>;

    oled: ssd1306@3c {
		compatible = "solomon,ssd1306fb";
		reg = <0x3c>;
		label = "DISPLAY";
		width = <128>;
		height = <32>;
		segment-offset = <0>;
		page-offset = <0>;
		display-offset = <0>;
		multiplex-ratio = <31>;
		segment-remap;
		com-invdir;
		com-sequential;
		prechargep = <0x22>;
	};
};


A config/lily58.keymap => config/lily58.keymap +83 -0
@@ 0,0 1,83 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/outputs.h>

/ {
    behaviors {
        td0: tap_dance_0 {
            compatible = "zmk,behavior-tap-dance";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&kp LBKT>, <&kp LBRC>, <&kp C_PREV>;
        };

        td1: tap_dance_1 {
            compatible = "zmk,behavior-tap-dance";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&kp RBKT>, <&kp RBRC>, <&kp C_NEXT>;
        };

        tilesc: tilde_escape {
            compatible = "zmk,behavior-mod-morph";
            #binding-cells = <0>;
            bindings = <&kp ESC>, <&kp TILDE>;

            mods = <(MOD_LSFT|MOD_RSFT)>;
        };
    };

    combos {
        compatible = "zmk,combos";

        toggle_qwerty {
            bindings = <&tog 1>;
            key-positions = <42 43>;
        };
    };

    keymap {
        compatible = "zmk,keymap";

        dvorak_default {
            bindings = <
&tilesc    &kp N1    &kp N2     &kp N3    &kp N4    &kp N5                   &kp N6         &kp N7     &kp N8    &kp N9  &kp N0  &kp EQUAL
&kp TAB    &kp SQT   &kp COMMA  &kp DOT   &kp P     &kp Y                    &kp F          &kp G      &kp C     &kp R   &kp L   &kp FSLH
&kp LCTRL  &kp A     &kp O      &kp E     &kp U     &kp I                    &kp D          &kp H      &kp T     &kp N   &kp S   &kp MINUS
&kp LSHFT  &kp SEMI  &kp Q      &kp J     &kp K     &kp X      &td0   &td1   &kp B          &kp M      &kp W     &kp V   &kp Z   &kp RSHIFT
                                &kp LALT  &kp LGUI  &kp SPACE  &mo 3  &mo 2  &kp BACKSPACE  &kp ENTER  &kp RALT
            >;
        };

        qwerty_sticky {
            bindings = <
&trans  &trans  &trans  &trans  &trans  &trans                  &trans  &trans  &trans     &trans   &trans    &trans
&trans  &kp Q   &kp W   &kp E   &kp R   &kp T                   &kp Y   &kp U   &kp I      &kp O    &kp P     &kp MINUS
&trans  &kp A   &kp S   &kp D   &kp F   &kp G                   &kp H   &kp J   &kp K      &kp L    &kp SEMI  &kp SQT
&trans  &kp Z   &kp X   &kp C   &kp V   &kp B   &trans  &trans  &kp N   &kp M   &kp COMMA  &kp DOT  &kp FSLH  &trans
                        &trans  &trans  &trans  &trans  &trans  &trans  &trans  &trans
            >;
        };

        lower_layer {
            bindings = <
&bt BT_CLR  &bt BT_PRV  &bt BT_NXT  &none   &none   &out OUT_TOG                    &none   &none       &none       &none          &none    &none
&kp F1      &kp F2      &kp F3      &kp F4  &kp F5  &kp F6                          &kp F7  &kp F8      &kp F9      &kp F10        &kp F11  &kp F12
&none       &none       &none       &none   &none   &none                           &none   &kp INSERT  &kp HOME    &kp PAGE_UP    &none    &none
&none       &none       &none       &none   &none   &none           &none  &none    &none   &kp DELETE  &kp END     &kp PAGE_DOWN  &none    &none
                                    &none   &none   &none           &none  &none    &none &none       &none
            >;
        };

        raise_layer {
            bindings = <
&none           &none    &none    &none    &none    &none                     &none     &none     &none   &none      &none  &none
&kp F13         &kp F14  &kp F15  &kp F16  &kp F17  &kp F18                   &none     &none     &none   &none      &none  &none
&kp F19         &kp F20  &kp F21  &kp F22  &kp F23  &kp F24                   &kp LEFT  &kp DOWN  &kp UP  &kp RIGHT  &none  &none
&kp LEFT_SHIFT  &none    &none    &none    &none    &none    &none  &kp BSLH  &none     &none     &none   &none      &none  &none
                                  &none    &none    &none    &none  &none     &none     &none     &none
            >;
        };
    };
};

M flake.nix => flake.nix +4 -0
@@ 24,6 24,10 @@

        zephyrDepsHash = "sha256-1dTCIVovLZ+13o26S/CzT8gtdf5Bzw9e+1e8plDorOA=";

        postConfigure = ''
          patch -d ../zmk/ -p1 < ${./patches/001-lily58-pin.patch}
        '';

        meta = {
          description = "ZMK firmware";
          license = nixpkgs.lib.licenses.mit;

A patches/001-lily58-pin.patch => patches/001-lily58-pin.patch +49 -0
@@ 0,0 1,49 @@
diff --git a/app/boards/shields/lily58/lily58.dtsi b/app/boards/shields/lily58/lily58.dtsi
index 195ab2b7..4e067bd2 100644
--- a/app/boards/shields/lily58/lily58.dtsi
+++ b/app/boards/shields/lily58/lily58.dtsi
@@ -47,19 +47,6 @@ RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7)
             ;
 
     };
-
-    left_encoder: encoder_left {
-        compatible = "alps,ec11";
-        a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
-        b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
-        steps = <80>;
-    };
-
-    sensors: sensors {
-        compatible = "zmk,keymap-sensors";
-        sensors = <&left_encoder>;
-        triggers-per-rotation = <20>;
-    };
 };
 
 &kata0510_lily58_layout {
diff --git a/app/boards/shields/lily58/lily58_left.overlay b/app/boards/shields/lily58/lily58_left.overlay
index b95332d9..0f388796 100644
--- a/app/boards/shields/lily58/lily58_left.overlay
+++ b/app/boards/shields/lily58/lily58_left.overlay
@@ -16,7 +16,3 @@
         , <&pro_micro 10 GPIO_ACTIVE_HIGH>
         ;
 };
-
-&left_encoder {
-    status = "okay";
-};
diff --git a/app/boards/shields/lily58/lily58_right.overlay b/app/boards/shields/lily58/lily58_right.overlay
index 15820ad2..503e51ff 100644
--- a/app/boards/shields/lily58/lily58_right.overlay
+++ b/app/boards/shields/lily58/lily58_right.overlay
@@ -13,7 +13,7 @@
 &kscan0 {
     col-gpios
         = <&pro_micro 10 GPIO_ACTIVE_HIGH>
-        , <&pro_micro 16 GPIO_ACTIVE_HIGH>
+        , <&pro_micro 21 GPIO_ACTIVE_HIGH>
         , <&pro_micro 14 GPIO_ACTIVE_HIGH>
         , <&pro_micro 15 GPIO_ACTIVE_HIGH>
         , <&pro_micro 18 GPIO_ACTIVE_HIGH>