{ nixos-hardware, lib, config, ... }: let inherit (lib) mkEnableOption mkOption types mkDefault; cfg = config.hardware.deskpi; in { options.hardware.deskpi = { enable = mkEnableOption "enable DeskPi Pro daemons"; device = mkOption { type = types.str; default = "/dev/deskPi"; }; }; imports = [nixos-hardware.nixosModules.raspberry-pi-4] ++ [../raspberry-pi/overlays] ++ [../raspberry-pi/apply-overlays] ++ [./deskpi-tools.nix] ++ [./trim.nix]; config = { hardware.raspberry-pi."4" = { xhci.enable = mkDefault false; dwc2.enable = mkDefault true; dwc2.dr_mode = mkDefault "host"; overlays = { rpi4-disable-pwrled.enable = mkDefault true; }; }; hardware.deviceTree = { enable = true; filter = "bcm2711-rpi-4-b.dtb"; }; services.udev.extraRules = '' ACTION=="add", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SUBSYSTEM=="tty", SYMLINK+="${builtins.baseNameOf cfg.device}" ''; }; }