ZSA Keyboards
ZSA offers a variety of ergonomic keyboards, such as the Ergodox EZ and the Moonlander Mark I.
The use of ZSA's keyboards does not require any change to the NixOS configuration, but flashing firmware onto them does.
Configuring a keyboard
ZSA's keyboards can be configured using their online Oryx configurator tool. You will then need to flash the firmware onto the keyboard, which can be done in three ways, all necessitating a common change in the NixOS configuration, as seen in the following section.
Flashing firmware
Pre-requirement
Some udev rules are necessary for the connection before flashing any firmware onto the keyboard. You have to activate them in your NixOS configuration first:
![](/w/images/e/ef/Breeze-text-x-plain.png)
/etc/nixos/configuration.nix
hardware.keyboard.zsa.enable = true;
Once the new configuration is applied, you may flash ZSA's keyboards with one of the three following methods.
Flashing via a Chromium-based web browser (Chrome, Chromium...)
In ZSA's Oryx configurator tool, you can click “Save to my keyboard” to flash the keyboard.
Flashing via wally-cli (command line tool)
ZSA's wally-cli
command-line tool can be used to flash the keyboard. You will need to install it:
![](/w/images/e/ef/Breeze-text-x-plain.png)
/etc/nixos/configuration.nix
environment.systemPackages = with pkgs; [ wally-cli ];
Then, you may use the following command to flash the keyboard, replacing the path with the location of the downloaded firmware:
wally-cli /path/to/firmware.bin
Flashing via Keymapp (graphical tool)
ZSA's keymapp
graphical tool can be used to flash the keyboard. It is user-friendly, and has other features, such as live layout viewing, key presses heatmap, and links to various tools offered by ZSA's online Oryx configurator. You will need to install it:
![](/w/images/e/ef/Breeze-text-x-plain.png)
/etc/nixos/configuration.nix
environment.systemPackages = with pkgs; [ keymapp ];