~/firmware

Keyboard Firmware

Every Parix keyboard ships with open-source firmware, pre-flashed and ready to type — no setup required. Wired boards run QMK; wireless boards run ZMK. Both are fully customisable, and your config is yours to keep: remap any key, build layers, combos, and macros, with no vendor lock-in.

Which firmware does my board run?

Keyboard Firmware
Totem (wired) QMK + Vial
Totem (wireless) ZMK
Cheapino QMK + Vial
Forager ZMK
Corne MX ZMK
Corne Choc ZMK
Sofle MX ZMK
Sofle Choc ZMK

Wired keyboards — QMK + Vial

All Parix wired keyboards run QMK with Vial enabled. Plug in, open the Vial app, and remap keys in real time. No flashing, no code.

Wireless keyboards — ZMK

All Parix wireless keyboards run ZMK with Bluetooth, mouse keys, and ZMK Studio enabled out of the box.

Totem

github.com/dieselsaurav/zmk-config-totem-studio

ZMK 4 (Zephyr 4.1). Miryoku-inspired 38-key layout with home row mods, vim-style navigation, 6 thumb-activated layers, full mouse emulation, 14 combos, and ZMK Studio support. Based on urob's tuning for home row mods and combos.

Corne (MX & Choc)

github.com/dieselsaurav/zmk-for-keyboards

ZMK config for the Corne wireless split, covering both the Corne MX and Corne Choc. Runs on nice!nano v2 with nice!view and OLED display support. ZMK Studio enabled on the left half.

Sofle (MX & Choc)

github.com/dieselsaurav/zmk-for-sofle

ZMK on nice!nano v2, covering both the Sofle MX and Sofle Choc. Miryoku-style layout adapted from the Corne config — QWERTY base with GACS home-row mods, vim navigation, a top number row, 7 layers, and 14 combos. Dual displays (OLED or nice!view) and both rotary encoders supported — left for volume, right for page up/down. ZMK Studio and mouse keys enabled.

Forager

github.com/dieselsaurav/zmk-config-forager

ZMK config for the 34-key Forager. QWERTY base with GACS home-row mods, vim-style navigation, and a urob-inspired setup — positional home-row mods, punctuation mod-morphs, and a smart number layer.

See each repo's README for the full keymap layout, layer maps, combo tables, and build configuration.

Customising your keymap

ZMK Studio (no flashing)

Plug the left half in via USB, open zmk.studio in Chrome, and connect. Remap keys, adjust layers, configure hold-taps — changes apply instantly and persist across reboots. Works over Bluetooth too.

Keymap Editor (visual, via GitHub)

Fork your keyboard's repo, then open Keymap Editor. It connects to your fork, gives you a visual drag-and-drop interface, and commits changes directly to GitHub. The build.yml Action compiles the firmware automatically.

Flashing a custom build

  1. Fork the repo on GitHub.
  2. Edit the .keymap file in config/.
  3. Push. GitHub Actions builds the firmware. No local toolchain needed.
  4. Download the .uf2 files from the Actions tab.
  5. Flash. Double-press reset on the controller. It mounts as a USB drive. Drag the .uf2 onto it.
  6. Flash both halves — left and right have separate .uf2 files.

Resources

  • ZMK Documentation — keymaps, behaviors, combos, macros
  • ZMK Studio — real-time keymap editor for wireless keyboards
  • Keymap Editor — visual ZMK keymap editor via GitHub
  • Vial — real-time keymap editor for wired keyboards

FAQ

How do I connect my keyboard over Bluetooth?

Power on both halves. Your Parix keyboard runs ZMK and starts advertising over Bluetooth as soon as it's on and not already paired. Open the Bluetooth settings on your computer or phone and select the keyboard to pair. Only the left half connects to your device — the right half links to the left automatically. ZMK keeps multiple device profiles, so you can stay paired to several devices and switch between them using the Bluetooth profile keys in your keymap; check your board's keymap diagram above to see which keys those are. To pair a new device, switch to an empty profile and the keyboard will start advertising again.

How do I turn the keyboard on?

Each half has a power switch located directly below the USB-C port. Flip both halves to the ON position.

How do I charge it?

Turn the keyboard on first, then plug it in via USB-C — it needs to be powered on to charge. Each half has its own battery, so charge both halves when they run low.

Need help? DM us on Instagram (@parix_in).