diff options
author | Florian Klink <flokli@flokli.de> | 2024-10-26T16·23+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-10-27T13·32+0000 |
commit | 4c90f723d870822d26a4852606d86837d8024d9e (patch) | |
tree | 1c85d358a4bb73f612def5a6ca9017f923596926 | |
parent | 0183c3684388e8d9d68adf04b5deceef2de45b67 (diff) |
feat(users/flokli/kb/corneish_zen): init r/8865
This builds the keyboard firmware using zmk-nix. The miryoku_zmk config is pulled in from manna-harbour/miryoku_zmk, but slightly patched to add support for RALT and quick-tap. Change-Id: I91efbbd789526cce7f086f367c7bccb7857b06e6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12695 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: flokli <flokli@flokli.de>
4 files changed, 146 insertions, 0 deletions
diff --git a/users/flokli/keyboards/corneish_zen/0001-miryoku_behaviors-add-quick-tap-ms-require-prior-idl.patch b/users/flokli/keyboards/corneish_zen/0001-miryoku_behaviors-add-quick-tap-ms-require-prior-idl.patch new file mode 100644 index 000000000000..fc86c0627ddc --- /dev/null +++ b/users/flokli/keyboards/corneish_zen/0001-miryoku_behaviors-add-quick-tap-ms-require-prior-idl.patch @@ -0,0 +1,25 @@ +From 9ed3e8ee2aad704fcfef2490617e2fd22902b2c4 Mon Sep 17 00:00:00 2001 +From: Florian Klink <flokli@flokli.de> +Date: Sun, 27 Oct 2024 12:01:13 +0100 +Subject: [PATCH] miryoku_behaviors: add quick-tap-ms, require-prior-idle-ms + +--- + miryoku/miryoku_behaviors.dtsi | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/miryoku/miryoku_behaviors.dtsi b/miryoku/miryoku_behaviors.dtsi +index 473df49..73211da 100644 +--- a/miryoku/miryoku_behaviors.dtsi ++++ b/miryoku/miryoku_behaviors.dtsi +@@ -14,6 +14,8 @@ + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + tapping-term-ms = <U_TAPPING_TERM>; ++ quick-tap-ms = <200>; ++ require-prior-idle-ms = <125>; + flavor = "tap-preferred"; + bindings = <&mo>, <&kp>; + }; +-- +2.46.1 + diff --git a/users/flokli/keyboards/corneish_zen/0001-miryoku_layer_alternatives.h-expose-alt-gr-on-G-and-.patch b/users/flokli/keyboards/corneish_zen/0001-miryoku_layer_alternatives.h-expose-alt-gr-on-G-and-.patch new file mode 100644 index 000000000000..540ecb162e2d --- /dev/null +++ b/users/flokli/keyboards/corneish_zen/0001-miryoku_layer_alternatives.h-expose-alt-gr-on-G-and-.patch @@ -0,0 +1,25 @@ +From a852a9738cc7510f6d3b80d1befb3c88ef8f08f7 Mon Sep 17 00:00:00 2001 +From: Florian Klink <flokli@flokli.de> +Date: Sun, 27 Oct 2024 11:14:30 +0100 +Subject: [PATCH] miryoku_layer_alternatives.h: expose alt-gr on G and M + +--- + miryoku/miryoku_babel/miryoku_layer_alternatives.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/miryoku/miryoku_babel/miryoku_layer_alternatives.h b/miryoku/miryoku_babel/miryoku_layer_alternatives.h +index 8044fdd..07ed9b6 100644 +--- a/miryoku/miryoku_babel/miryoku_layer_alternatives.h ++++ b/miryoku/miryoku_babel/miryoku_layer_alternatives.h +@@ -86,7 +86,7 @@ U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPACE),U_LT + + #define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \ + &kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \ +-U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp G, &kp M, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \ ++U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), U_MT(RALT, G), U_MT(RALT, M), U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \ + U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\ + U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPACE),U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP + +-- +2.46.1 + diff --git a/users/flokli/keyboards/corneish_zen/default.nix b/users/flokli/keyboards/corneish_zen/default.nix new file mode 100644 index 000000000000..f570fc0bc003 --- /dev/null +++ b/users/flokli/keyboards/corneish_zen/default.nix @@ -0,0 +1,62 @@ +{ pkgs, lib, ... }: +let + zmk-nix = pkgs.fetchFromGitHub { + owner = "lilyinstarlight"; + repo = "zmk-nix"; + rev = "d72e94ab94b2bceb60a29a2a8c2e1d304a4e922e"; + hash = "sha256-3WXPPBJ2u8rMxejPhUahSiqOBr1BOfTgDa7oQDPtw54="; + }; + + builders = pkgs.callPackage (import (zmk-nix + "/nix/builders.nix")) { }; + + miryoku_zmk = pkgs.fetchFromGitHub { + owner = "manna-harbour"; + repo = "miryoku_zmk"; + rev = "e6683e9f8b6c199b339208b1b501e88a7308ed48"; + hash = "sha256-GjTbAoyhr557Tn4JaWsA3Po5KxMsQXrpKc9H+PU3T8A="; + }; + + miryoku_zmk_patched = pkgs.runCommand "miryoku_zmk_patched" { } '' + mkdir -p $out + cp -r ${miryoku_zmk}/. $out/ + cd $out + chmod -R +w $out + patch -p1 < ${./0001-miryoku_layer_alternatives.h-expose-alt-gr-on-G-and-.patch} + patch -p1 < ${./0001-miryoku_behaviors-add-quick-tap-ms-require-prior-idl.patch} + ''; + +in + +rec { + config = pkgs.runCommand "config" { } '' + mkdir -p $out/config + cp -r ${miryoku_zmk_patched}/miryoku $out/ + cp ${./west.yml} $out/config/west.yml + cp ${miryoku_zmk_patched}/config/corneish_zen.keymap $out/config/ + ''; + + # helpful for debugging the resulting keymap + config-flat = pkgs.runCommand "config-flat" + { + nativeBuildInputs = [ pkgs.python3.pkgs.pcpp ]; + } '' + mkdir -p $out/config + cp ${./west.yml} $out/config/west.yml + pcpp --passthru-unfound-includes -o $out/config/corneish_zen.keymap ${miryoku_zmk_patched}/config/corneish_zen.keymap + ''; + + firmware = builders.buildSplitKeyboard { + name = "corneish_zen_v1"; + board = "corneish_zen_v1_%PART%"; + zephyrDepsHash = "sha256-D5CAlrO/E6DPbtUJyh/ec8ACpo1XM1jx2gLS2TpklBQ="; + src = config; + }; + + flash-left = pkgs.writeShellScript "flash.sh" '' + cp ${firmware}/zmk_left.uf2 /run/media/$USER/CORNEISHZEN/ + ''; + + flash-right = pkgs.writeShellScript "flash.sh" '' + cp ${firmware}/zmk_right.uf2 /run/media/$USER/CORNEISHZEN/ + ''; +} diff --git a/users/flokli/keyboards/corneish_zen/west.yml b/users/flokli/keyboards/corneish_zen/west.yml new file mode 100644 index 000000000000..b48d4a66e986 --- /dev/null +++ b/users/flokli/keyboards/corneish_zen/west.yml @@ -0,0 +1,34 @@ +manifest: + remotes: + - name: zmkfirmware + url-base: https://github.com/zmkfirmware + projects: + - name: zephyr + remote: zmkfirmware + revision: f8e4d15791602c67405c0fd2651167a895939565 # v3.5.0+zmk-fixes + import: + name-blocklist: + - ci-tools + - hal_altera + - hal_cypress + - hal_infineon + - hal_microchip + - hal_nxp + - hal_openisa + - hal_silabs + - hal_xtensa + - hal_st + - hal_ti + - loramac-node + - mcuboot + - mcumgr + - net-tools + - openthread + - edtt + - trusted-firmware-m + - name: zmk + remote: zmkfirmware + revision: 7f1ee320ab638245bbdae9b1cda5d5c50e2cb16e # main + import: app/west.yml + self: + path: config |