1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.hardware.keyboard.zsa;
10 inherit (lib) mkEnableOption mkIf;
11
12in
13{
14 options.hardware.keyboard.zsa = {
15 enable = mkEnableOption ''
16 udev rules for keyboards from ZSA like the ErgoDox EZ, Planck EZ and Moonlander Mark I.
17 You need it when you want to flash a new configuration on the keyboard
18 or use their live training in the browser.
19 You may want to install the wally-cli package
20 '';
21 };
22
23 config = mkIf cfg.enable {
24 services.udev.packages = [ pkgs.zsa-udev-rules ];
25 };
26}