From c7a848a1996b3c5fa1505f8fde0753040cb48d54 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:05:46 -0500 Subject: [PATCH 01/14] Change back to dirty fix --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 13b262f..1de80ab 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /.vs/zmk-config/FileContentIndex/56ee7683-e67e-425a-8c1a-5989d68e9d8f.vsidx /.vs/zmk-config/v17/.wsuo /.vs +.DS_Store From b89ed33fc86ade9885390d9515eb7ccb4062cd54 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:07:21 -0500 Subject: [PATCH 02/14] Update keymap paths in draw-keymaps workflow --- .github/workflows/draw-keymaps.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml index 039585e..7428894 100644 --- a/.github/workflows/draw-keymaps.yml +++ b/.github/workflows/draw-keymaps.yml @@ -10,13 +10,13 @@ on: # - 'config/*.json' - 'config/keymap_drawer.config.yaml' - '.github/workflows/draw-keymaps.yml' - - 'config/boards/*/*/*.keymap' + - 'boards/*/*/*.keymap' jobs: draw: uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main with: - keymap_patterns: "config/boards/*/*/*.keymap" # path to the keymaps to parse + keymap_patterns: "boards/*/*/*.keymap" # path to the keymaps to parse config_path: "config/keymap_drawer.config.yaml" # config file, ignored if not exists output_folder: "keymap" # path to save produced SVGs # branch to use amend_commit: true # amend generated files to commit that produces them From b8eb13ab56b7753694e8f815104786b040b12738 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:21:36 -0500 Subject: [PATCH 03/14] Add sweep layout JSON and update draw-keymaps workflow to include .dtsi files --- .github/workflows/draw-keymaps.yml | 4 ++- boards/shields/sweep/sweep.json | 42 ++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 boards/shields/sweep/sweep.json diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml index 7428894..398ea3d 100644 --- a/.github/workflows/draw-keymaps.yml +++ b/.github/workflows/draw-keymaps.yml @@ -11,6 +11,7 @@ on: - 'config/keymap_drawer.config.yaml' - '.github/workflows/draw-keymaps.yml' - 'boards/*/*/*.keymap' + - 'boards/*/*/*.dtsi' jobs: draw: @@ -18,7 +19,8 @@ jobs: with: keymap_patterns: "boards/*/*/*.keymap" # path to the keymaps to parse config_path: "config/keymap_drawer.config.yaml" # config file, ignored if not exists - output_folder: "keymap" # path to save produced SVGs # branch to use + output_folder: "keymap" # path to save produced SVGs + json_path: "boards/*/*/*.json" # path to physical layout json amend_commit: true # amend generated files to commit that produces them parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''" draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" diff --git a/boards/shields/sweep/sweep.json b/boards/shields/sweep/sweep.json new file mode 100644 index 0000000..93cd273 --- /dev/null +++ b/boards/shields/sweep/sweep.json @@ -0,0 +1,42 @@ +{ + "layouts": { + "Default": { + "layout": [ + { "x": 0.0, "y": 0.95 }, + { "x": 1.0, "y": 0.32 }, + { "x": 2.0, "y": 0.0 }, + { "x": 3.0, "y": 0.29 }, + { "x": 4.0, "y": 0.42 }, + { "x": 7.0, "y": 0.42 }, + { "x": 8.0, "y": 0.29 }, + { "x": 9.0, "y": 0.0 }, + { "x": 10.0, "y": 0.32 }, + { "x": 11.0, "y": 0.95 }, + { "x": 0.0, "y": 1.95 }, + { "x": 1.0, "y": 1.32 }, + { "x": 2.0, "y": 1.0 }, + { "x": 3.0, "y": 1.29 }, + { "x": 4.0, "y": 1.42 }, + { "x": 7.0, "y": 1.42 }, + { "x": 8.0, "y": 1.29 }, + { "x": 9.0, "y": 1.0 }, + { "x": 10.0, "y": 1.32 }, + { "x": 11.0, "y": 1.95 }, + { "x": 0.0, "y": 2.95 }, + { "x": 1.0, "y": 2.32 }, + { "x": 2.0, "y": 2.0 }, + { "x": 3.0, "y": 2.29 }, + { "x": 4.0, "y": 2.42 }, + { "x": 7.0, "y": 2.42 }, + { "x": 8.0, "y": 2.29 }, + { "x": 9.0, "y": 2.0 }, + { "x": 10.0, "y": 2.32 }, + { "x": 11.0, "y": 2.95 }, + { "x": 3.3, "y": 3.55, "r": 15.0, "rx": 4.3, "ry": 4.55 }, + { "x": 4.3, "y": 3.55, "r": 30.0, "rx": 4.3, "ry": 4.55 }, + { "x": 6.7, "y": 3.55, "r": -30.0, "rx": 7.7, "ry": 4.55 }, + { "x": 7.7, "y": 3.55, "r": -15.0, "rx": 7.7, "ry": 4.55 } + ] + } + } +} From a9ee96227e6511daa8158a630a8aa8365b3b6ab4 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:24:49 -0500 Subject: [PATCH 04/14] Update json_path in draw-keymaps workflow to include all layout JSON files --- .github/workflows/draw-keymaps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml index 398ea3d..6286126 100644 --- a/.github/workflows/draw-keymaps.yml +++ b/.github/workflows/draw-keymaps.yml @@ -20,7 +20,7 @@ jobs: keymap_patterns: "boards/*/*/*.keymap" # path to the keymaps to parse config_path: "config/keymap_drawer.config.yaml" # config file, ignored if not exists output_folder: "keymap" # path to save produced SVGs - json_path: "boards/*/*/*.json" # path to physical layout json + json_path: "boards/*/*" # path to physical layout json amend_commit: true # amend generated files to commit that produces them parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''" draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" From 29cd76ece20d4ab4dc5f1fb73e369b102c12b48d Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:34:08 -0500 Subject: [PATCH 05/14] Rename layout key from "Default" to "sweep" in sweep.json --- boards/shields/sweep/sweep.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards/shields/sweep/sweep.json b/boards/shields/sweep/sweep.json index 93cd273..6fc9ab4 100644 --- a/boards/shields/sweep/sweep.json +++ b/boards/shields/sweep/sweep.json @@ -1,6 +1,6 @@ { "layouts": { - "Default": { + "sweep": { "layout": [ { "x": 0.0, "y": 0.95 }, { "x": 1.0, "y": 0.32 }, From e5bdabac747c897121eed245c3e7f6e801d09902 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 14:54:57 -0500 Subject: [PATCH 06/14] Add transform property to sweep layout in sweep.dtsi --- boards/shields/sweep/ferris.dtsi | 3 +-- boards/shields/sweep/sweep.dtsi | 8 ++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/boards/shields/sweep/ferris.dtsi b/boards/shields/sweep/ferris.dtsi index df602c1..5c3b87c 100644 --- a/boards/shields/sweep/ferris.dtsi +++ b/boards/shields/sweep/ferris.dtsi @@ -5,7 +5,6 @@ compatible = "zmk,physical-layout"; display-name = "Default"; - transform = <&default_transform>; keys // w h x y rot rx ry = <&key_physical_attrs 100 100 0 95 0 0 0> @@ -44,4 +43,4 @@ , <&key_physical_attrs 100 100 770 355 (-1500) 770 455> ; }; -}; \ No newline at end of file +}; diff --git a/boards/shields/sweep/sweep.dtsi b/boards/shields/sweep/sweep.dtsi index 10f2bb5..c4c4f23 100644 --- a/boards/shields/sweep/sweep.dtsi +++ b/boards/shields/sweep/sweep.dtsi @@ -7,6 +7,10 @@ #include #include "ferris.dtsi" +&sweep_layout { + transform = <&default_transform>; +}; + / { chosen { @@ -28,7 +32,7 @@ kscan0: kscan { compatible = "zmk,kscan-gpio-direct"; wakeup-source; - + input-gpios = <&pro_micro 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> , <&pro_micro 18 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> @@ -50,4 +54,4 @@ ; }; -}; \ No newline at end of file +}; From 14254fde6bd3301ecbeb38480774d2231e535bfe Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 15:00:55 -0500 Subject: [PATCH 07/14] Update draw_args in draw-keymaps workflow to include '-z ferris' --- .github/workflows/draw-keymaps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml index 6286126..e25fe3f 100644 --- a/.github/workflows/draw-keymaps.yml +++ b/.github/workflows/draw-keymaps.yml @@ -23,5 +23,5 @@ jobs: json_path: "boards/*/*" # path to physical layout json amend_commit: true # amend generated files to commit that produces them parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''" - draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" + draw_args: "-z ferris" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" fail_on_error: true From 6481984c766d9f2e5be9c8243fc064362c56dee0 Mon Sep 17 00:00:00 2001 From: conlank <1820574+conlank@users.noreply.github.com> Date: Fri, 23 Jan 2026 15:04:53 -0500 Subject: [PATCH 08/14] Update draw_args in draw-keymaps workflow to specify sweep layout and clean up formatting in sweep.keymap --- .github/workflows/draw-keymaps.yml | 2 +- boards/shields/sweep/sweep.keymap | 14 +- keymap/sweep.svg | 2500 ++++++++++++++++++++++++++++ keymap/sweep.yaml | 232 +++ 4 files changed, 2744 insertions(+), 4 deletions(-) create mode 100644 keymap/sweep.svg create mode 100644 keymap/sweep.yaml diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml index e25fe3f..c30734c 100644 --- a/.github/workflows/draw-keymaps.yml +++ b/.github/workflows/draw-keymaps.yml @@ -23,5 +23,5 @@ jobs: json_path: "boards/*/*" # path to physical layout json amend_commit: true # amend generated files to commit that produces them parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''" - draw_args: "-z ferris" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" + draw_args: "sweep:'-z ferris'" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'" fail_on_error: true diff --git a/boards/shields/sweep/sweep.keymap b/boards/shields/sweep/sweep.keymap index e64c023..d91be30 100644 --- a/boards/shields/sweep/sweep.keymap +++ b/boards/shields/sweep/sweep.keymap @@ -94,7 +94,7 @@ combo_capsword { timeout-ms = <40>; key-positions = <20 29>; - bindings =<&caps_word>; + bindings =<&caps_word>; }; }; keymap { @@ -132,7 +132,7 @@ //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &mo 5 &kp SPACE &trans &kp ENTER // ╰──────────┴──────────╯ ╰──────────┴──────────╯ - >; + >; }; left_layer { @@ -182,7 +182,7 @@ &bootloader &trans &trans &trans &bt BT_SEL 1 &trans &trans &trans &trans &bootloader //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ //│ │ │ │ CLEAR BT │PROFILE 2 │ │ │ │ │ │ │ - &trans &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans + &studio_unlock &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ &trans &trans &trans &trans // ╰──────────┴──────────╯ ╰──────────┴──────────╯ @@ -205,5 +205,13 @@ // ╰──────────┴──────────╯ ╰──────────┴──────────╯ >; }; + + extra1 { + status = "reserved"; + }; + + extra2 { + status = "reserved"; + }; }; }; diff --git a/keymap/sweep.svg b/keymap/sweep.svg new file mode 100644 index 0000000..d447b8e --- /dev/null +++ b/keymap/sweep.svg @@ -0,0 +1,2500 @@ + +/* start glyphs */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* end glyphs */ + + +Base: + + + + +Q + + + + + +W + + + + +E + + + + +R + + + + +T + + + + +Y + + + + +U + + + + +I + + + + +O + + + + +P + + + + + +A + + + + +S + + + + +D + + + + +F + + + + +G + + + + +H + + + + +J + + + + +K + + + + +L + + + + +' + + + + + +Z + + + + +X + + + + +C + + + + +V + + + + +B + + + + +N + + + + +M + + + + +, + + + + +. + + + + +/ + + + + + + + +Left + + + + + + + + + + + + + + +ENTER + +Right + + + + +Gaming: + + + + +F + + + + +Q + + + + +W + + + + +E + + + + +R + + + + + +Gaming + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A + + + + +S + + + + +D + + + + +G + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Z + + + + +X + + + + +C + + + + +B + + + + +M + + + + +ESC + + + + + + + + + + + + + + + + + + + + + +AltGame + + + + + + + + + + + + + + + +ENTER + + + + +Left: + + + + +! + + + + +@ + + + + +# + + + + +$ + + + + +% + + + + +^ + + + + +& + + + + +* + + + + +( + + + + +) + + + + +1 + + + + +2 + + + + +3 + + + + +4 + + + + +5 + + + + +6 + + + + +7 + + + + +8 + + + + +9 + + + + +0 + + + + +F1 + + + + +F2 + + + + +F3 + + + + +F4 + + + + +F5 + + + + +F6 + + + + +F7 + + + + +F8 + + + + +F9 + + + + +? + + + + + + + + +ESC + + + + + + + + + + + + + + +Right: + + + + +~ + + + + +< + + + + + + + + + +> + + + + ++ + + + + +^ + + + + +( + + + + +) + + + + +: + + + + + +PGUP + +HOME + + + + +` + + + + + + + + + + + + + + + + + + + +- + + + + +* + + + + +[ + + + + +] + + + + +; + + + + + +PGDN + +END + + + + +| + + + + += + + + + +{ + + + + +} + + + + +_ + + + + += + + + + +{ + + + + +} + + + + +\ + + + + +PSCRN + + + + + + + + + + + + + + + + + + + + + + + +Config: + + + + + + + + + + + + + + + + + + + +&studio_u… + + + + + +0 + + + + + +Gaming + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +&studio_u… + + + + + + + + + + + + + + + + + + + + + +2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Alt Game: + + + + +4 + + + + +1 + + + + + + + + + +2 + + + + +3 + + + + +^ + + + + +& + + + + +* + + + + +( + + + + +) + + + + +5 + + + + + + + + + + + + + + + + + + + +T + + + + +6 + + + + +7 + + + + +8 + + + + +9 + + + + +0 + + + + +F1 + + + + +F2 + + + + +F3 + + + + +F4 + + + + +F5 + + + + +F6 + + + + +F7 + + + + +F8 + + + + +F9 + + + + +F10 + + + + + + + + + + + + + + + + + + + + + + +Combos: + + + + + +ESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +DEL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +BSPC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Created with keymap-drawer diff --git a/keymap/sweep.yaml b/keymap/sweep.yaml new file mode 100644 index 0000000..73da5ea --- /dev/null +++ b/keymap/sweep.yaml @@ -0,0 +1,232 @@ +layout: {zmk_keyboard: sweep} +layers: + Base: + - {t: Q, h: '$$mdi:apple-keyboard-control$$'} + - W + - E + - R + - T + - Y + - U + - I + - O + - {t: P, h: '$$mdi:apple-keyboard-control$$'} + - A + - S + - D + - F + - G + - H + - J + - K + - L + - {t: '''', h: '$$mdi:apple-keyboard-option$$'} + - Z + - X + - C + - V + - B + - N + - M + - ',' + - . + - {t: /, h: '$$mdi:apple-keyboard-shift$$'} + - {t: '$$mdi:keyboard-tab$$', h: Left} + - $$mdi:apple-keyboard-shift$$ + - $$mdi:keyboard-space$$ + - {t: ENTER, h: Right} + Gaming: + - F + - Q + - W + - E + - R + - {t: Gaming, h: '$$mdi:toggle-switch$$'} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - $$mdi:apple-keyboard-shift$$ + - A + - S + - D + - G + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - $$mdi:apple-keyboard-control$$ + - Z + - X + - C + - B + - M + - ESC + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - $$mdi:apple-keyboard-option$$ + - Alt Game + - $$mdi:keyboard-space$$ + - {t: ▽, type: trans} + - ENTER + Left: + - '!' + - '@' + - '#' + - $ + - '%' + - ^ + - '&' + - '*' + - ( + - ) + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - '0' + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - F7 + - F8 + - F9 + - '?' + - {type: held} + - ESC + - {t: ▽, type: trans} + - {t: ▽, type: trans} + Right: + - '~' + - < + - $$mdi:arrow-up$$ + - '>' + - + + - ^ + - ( + - ) + - ':' + - {t: PG UP, h: HOME} + - '`' + - $$mdi:arrow-left$$ + - $$mdi:arrow-down$$ + - $$mdi:arrow-right$$ + - '-' + - '*' + - '[' + - ']' + - ; + - {t: PG DN, h: END} + - '|' + - '=' + - '{' + - '}' + - _ + - '=' + - '{' + - '}' + - \ + - PSCRN + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + Config: + - $$mdi:restart$$ + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - '&studio_unlock' + - {t: '$$mdi:bluetooth-connect$$', s: '0', type: sym_sub_text} + - {t: Gaming, h: '$$mdi:toggle-switch$$'} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - $$mdi:restart$$ + - {t: '$$mdi:flash$$', h: '$$mdi:new-box$$', s: '$$mdi:micro-sd$$', type: sym_by_sym} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: '$$mdi:bluetooth-connect$$', s: '1', type: sym_sub_text} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: '$$mdi:flash$$', h: '$$mdi:new-box$$', s: '$$mdi:micro-sd$$', type: sym_by_sym} + - '&studio_unlock' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: '$$mdi:bluetooth-settings$$', s: '$$mdi:close-thick$$', type: sym_sub_text} + - {t: '$$mdi:bluetooth-connect$$', s: '2', type: sym_sub_text} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + Alt Game: + - '4' + - '1' + - {t: ▽, type: trans} + - '2' + - '3' + - ^ + - '&' + - '*' + - ( + - ) + - '5' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - T + - '6' + - '7' + - '8' + - '9' + - '0' + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - F7 + - F8 + - F9 + - F10 + - {type: held} + - $$mdi:keyboard-tab$$ + - {t: ▽, type: trans} + - {t: ▽, type: trans} +combos: +- p: [1, 2] + k: ESC + l: [Base] +- p: [6, 7] + k: DEL +- p: [16, 17] + k: BSPC +- p: [23, 24] + k: $$mdi:apple-keyboard-command$$ + l: [Base, Left, Right] +- p: [25, 26] + k: $$mdi:apple-keyboard-command$$ +- p: [20, 21] + k: $$mdi:apple-keyboard-shift$$ + l: [Base, Left, Right] +- p: [28, 29] + k: $$mdi:apple-keyboard-shift$$ +- p: [20, 29] + k: $$mdi:apple-keyboard-caps$$ From 4df23374fc70476b5c015dbad367b5811329d036 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 15:18:26 -0500 Subject: [PATCH 09/14] Update build workflow and enhance ferris layout configuration --- .github/workflows/build.yml | 1 + boards/shields/sweep/ferris.dtsi | 1 + boards/shields/sweep/sweep_central_dongle.conf | 9 +++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d74fb89..04d74ab 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,4 @@ +name: Build firmware on: [push, pull_request, workflow_dispatch] jobs: diff --git a/boards/shields/sweep/ferris.dtsi b/boards/shields/sweep/ferris.dtsi index 5c3b87c..b3d64bc 100644 --- a/boards/shields/sweep/ferris.dtsi +++ b/boards/shields/sweep/ferris.dtsi @@ -5,6 +5,7 @@ compatible = "zmk,physical-layout"; display-name = "Default"; + transform = <&default_transform>; keys // w h x y rot rx ry = <&key_physical_attrs 100 100 0 95 0 0 0> diff --git a/boards/shields/sweep/sweep_central_dongle.conf b/boards/shields/sweep/sweep_central_dongle.conf index cda3ee8..6ea19b9 100644 --- a/boards/shields/sweep/sweep_central_dongle.conf +++ b/boards/shields/sweep/sweep_central_dongle.conf @@ -38,7 +38,7 @@ CONFIG_ZMK_SPLIT_ESB_PROTO_TX_RETRANSMIT_COUNT=3 # set 2, if CONFIG_ZMK_BLE is enabled on central, which needs BLE and ESB simultaneously CONFIG_MPSL_TIMESLOT_SESSION_COUNT=1 -# Number of message queue size to buffer ESB payload for TX in between multi-protocol service +# Number of message queue size to buffer ESB payload for TX in between multi-protocol service # timeslots (CONFIG_MPSL_TIMESLOT_SESSION_COUNT) CONFIG_ZMK_SPLIT_ESB_PROTO_MSGQ_ITEMS=16 @@ -65,6 +65,7 @@ CONFIG_ESB_TX_FIFO_SIZE=1 CONFIG_ZMK_BATTERY_REPORTING=y CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y CONFIG_BT_MAX_PAIRED=2 -CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=n -CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=n -CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y \ No newline at end of file +CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=y +CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=y +CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y +CONFIG_DONGLE_SCREEN_WPM_ACTIVE=y From cfc4e97d9dbd1a83a07becc3f5c8fa8268ce90b2 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 15:22:41 -0500 Subject: [PATCH 10/14] Fix formatting in README and update keymap image to sweep layout --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e500f38..0638649 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk) - ESB-based wireless split transport for reduced latency and reliable peripheral links. - Dedicated XIAO BLE dongle build target for USB host connectivity. - Battery reporting retained on peripherals with ESB transport. -- Improved battery benefits of being in Dongle mode. +- Improved battery benefits of being in Dongle mode. - GitHub Actions matrix configured to compile dongle and peripheral firmware artifacts. ## Repository Layout @@ -33,7 +33,7 @@ This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk) ## Keymap -![keyboard layout](./keymap/cradio.svg) +![keyboard layout](./keymap/sweep.svg) ## Credits From 0e519be9d39565a4ddeb8943596e73bb3c2b72d2 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 15:47:54 -0500 Subject: [PATCH 11/14] Remove unused sweep_layout transform definition in sweep.dtsi --- boards/shields/sweep/sweep.dtsi | 3 --- 1 file changed, 3 deletions(-) diff --git a/boards/shields/sweep/sweep.dtsi b/boards/shields/sweep/sweep.dtsi index c4c4f23..c77da33 100644 --- a/boards/shields/sweep/sweep.dtsi +++ b/boards/shields/sweep/sweep.dtsi @@ -7,9 +7,6 @@ #include #include "ferris.dtsi" -&sweep_layout { - transform = <&default_transform>; -}; / { From 4f9ae69e6debcc90bb484e0b0fa1b3afa7ea71ed Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 15:51:20 -0500 Subject: [PATCH 12/14] Add build firmware badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0638649..01d3a70 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Ferris Sweep ZMK Configuration +[![Build firmware](https://github.com/conlank/zmk-config/actions/workflows/build.yml/badge.svg?branch=4.1esb)](https://github.com/conlank/zmk-config/actions/workflows/build.yml) + This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk) configuration for the split [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) keyboard. It supports a pair of nice!nano v2 peripherals that communicate with a dedicated [Seeed Studio XIAO nRF52840](https://amzn.to/3LOPtYW) board acting as the split dongle. The key split transport is provided by the [ZMK ESB Split Transport module](https://github.com/badjeff/zmk-feature-split-esb) for low-latency communication between the halves and the dongle. ## Highlights From bd5508c0bb6bf4f2012318c6e582c27d0fbd887b Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 16:00:31 -0500 Subject: [PATCH 13/14] Disable battery and output screen features in sweep central dongle configuration --- boards/shields/sweep/sweep_central_dongle.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/shields/sweep/sweep_central_dongle.conf b/boards/shields/sweep/sweep_central_dongle.conf index 6ea19b9..18d37d5 100644 --- a/boards/shields/sweep/sweep_central_dongle.conf +++ b/boards/shields/sweep/sweep_central_dongle.conf @@ -65,7 +65,7 @@ CONFIG_ESB_TX_FIFO_SIZE=1 CONFIG_ZMK_BATTERY_REPORTING=y CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y CONFIG_BT_MAX_PAIRED=2 -CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=y -CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=y +CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=n +CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=n CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y CONFIG_DONGLE_SCREEN_WPM_ACTIVE=y From 1fa277c519546ceba253bb9e25b29705587d6136 Mon Sep 17 00:00:00 2001 From: Conlan Kreher Date: Fri, 23 Jan 2026 16:08:41 -0500 Subject: [PATCH 14/14] remove wpm --- boards/shields/sweep/sweep_central_dongle.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/boards/shields/sweep/sweep_central_dongle.conf b/boards/shields/sweep/sweep_central_dongle.conf index 18d37d5..b209e2c 100644 --- a/boards/shields/sweep/sweep_central_dongle.conf +++ b/boards/shields/sweep/sweep_central_dongle.conf @@ -68,4 +68,3 @@ CONFIG_BT_MAX_PAIRED=2 CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=n CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=n CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y -CONFIG_DONGLE_SCREEN_WPM_ACTIVE=y