Sweep Pro Configuration Files
Ferris Sweep Pro has two kinds of customization:
- Key-level changes such as replacing a key, changing a layer key, or editing most tap/hold bindings live in
config/sweep.keymap. - Firmware configuration details such as trackpad support, Bluetooth options, battery reporting, display support, and build targets live in
config/*.conf,config/sweep.keymap, andbuild.yaml. These changes require rebuilding and flashing firmware.
Use ZMK Studio for live keymap edits when possible. Use this page when the setting is not exposed in Studio.
File Map
Section titled “File Map”| File | What it controls | Usually flash |
|---|---|---|
config/sweep.keymap | Layers, key bindings, encoder bindings, mouse layer bindings, pointer processors, Z drag-scroll behavior, 25 ms mouse click combos, and Mode switching. | Usually left/main half; flash right too if you changed right-side split behavior or want both halves rebuilt together. |
config/sweep.conf | Shared ZMK options: USB, Bluetooth, mouse support, ZMK Studio, battery reporting, soft-off, behavior queue size, stack sizes, and sleep policy. | Both halves that use the shared config. |
config/sweep_left.conf | Left central pointing behavior, currently smooth scrolling. | Left half. |
config/sweep_left_display_hw.conf | Display, LVGL, SSD16XX, and e-ink rendering options. See Sweep Pro E-Ink Display for the user-facing status screen. | Left display firmware. |
config/sweep_right.conf | Right half role configuration. | Right half. |
config/sweep_right_trackpad.conf | I2C and input stack options needed by the right-hand trackpad. | Right trackpad firmware. |
build.yaml | GitHub Actions build matrix and artifact names for each hardware variant. | No direct flashing; it controls which UF2 files Actions builds. |
Common Detailed Adjustments
Section titled “Common Detailed Adjustments”| Goal | Change here | Notes |
|---|---|---|
| Change key bindings or layers | config/sweep.keymap | Re-render the keymap diagrams after changing public defaults. |
| Change encoder actions | sensor-bindings in each layer of config/sweep.keymap | Character layers use left encoder volume and right encoder brightness. The mouse layer uses the left encoder for pointer speed and the right encoder for scroll speed. |
| Tune pointer or scroll speed curves | pointer_processor and drag_scroll_processor in config/sweep.keymap | The mouse layer Z / X keys fine-adjust pointer speed, C / V fine-adjust scroll speed, and encoder presses reset each speed to 1.00x. These processors define the baseline 1.00x value and allowed multiplier range. |
Change Z hold-to-scroll behavior | ds_z and drag_scroll_processor in config/sweep.keymap | Z toggles drag-scroll while held. The current drag-scroll processor supports conditional horizontal wheel behavior when enabled. |
| Change mouse click combos | combo_er_right_click, combo_df_left_click, and combo_cv_middle_click in config/sweep.keymap | Current timeout is 25 ms. X taps as the character and holds as left click on the base character layers. |
| Change Bluetooth or battery behavior | config/sweep.conf | Includes battery reporting interval, split battery proxy options, Bluetooth 2M PHY setting, TX power, and sleep policy. |
| Change display firmware capabilities | config/sweep_left_display_hw.conf | Display, LVGL, display thread, font, and memory-pool build options live here. The custom status screen UI comes from zmk-vfx-sweep-pro-display. |
| Change right-trackpad firmware capabilities | config/sweep_right_trackpad.conf | I2C and input thread stack options live here; daily trackpad behavior is covered in Use the Trackpad. |
| Change which firmware artifacts GitHub Actions builds | build.yaml | Keep artifact names clear: sweep_left, sweep_left_display, sweep_right, sweep_right_trackpad. |
Hardware Variants
Section titled “Hardware Variants”The same keymap supports four Sweep Pro hardware variants. Pick the matching UF2 pair after building:
| Variant | Left UF2 | Right UF2 |
|---|---|---|
| Basic | sweep_left | sweep_right |
| E-ink | sweep_left_display | sweep_right |
| Trackpad | sweep_left | sweep_right_trackpad |
| Full | sweep_left_display | sweep_right_trackpad |
In build.yaml, those variants are produced from these shield combinations:
- shield: sweep_left artifact-name: sweep_left- shield: sweep_left sweep_left_display_hw sweep_display artifact-name: sweep_left_display- shield: sweep_right artifact-name: sweep_right- shield: sweep_right sweep_right_trackpad artifact-name: sweep_right_trackpadRebuild Guidance
Section titled “Rebuild Guidance”- If you changed only live keymap content through ZMK Studio, you usually do not need to rebuild firmware.
- If you changed
config/sweep.keymap, rebuild the left/main firmware at minimum. - If you changed right-trackpad configuration, rebuild and flash
sweep_right_trackpad. - If you changed display configuration, rebuild and flash
sweep_left_display. - If you changed shared
.conf, module wiring, or shield composition, do a clean rebuild with-p.
See Build your own firmware for the exact GitHub Actions and local build commands.