{ devices, inputs, overlays, home-manager, nixpkgs, nur, nixos-raspberrypi, ... }: (builtins.mapAttrs ( name: device: nixos-raspberrypi.lib.nixosSystem { # Build the system (userspace) against unstable, while the kernel and # firmware come from nixos-raspberrypi.packages on its own pinned # nixpkgs (cachix hits, no kernel build). nixpkgs = nixpkgs; specialArgs = inputs // { inherit device inputs; unstablePkgs = inputs.nixpkgs.legacyPackages.${device.system}; masterPkgs = inputs.nixpkgs-master.legacyPackages.${device.system}; cratesNix = inputs.crates-nix.mkLib {pkgs = nixpkgs.legacyPackages.${device.system};}; }; system = device.system; modules = [ inputs.arion.nixosModules.arion inputs.disko.nixosModules.disko inputs.sops-nix.nixosModules.sops # inputs.stylix-stable.nixosModules.stylix inputs.nix-minecraft.nixosModules.minecraft-servers nur.modules.nixos.default home-manager.nixosModules.home-manager { nixpkgs.overlays = overlays; imports = with nixos-raspberrypi.nixosModules; [ raspberry-pi-5.base raspberry-pi-5.display-vc4 raspberry-pi-5.bluetooth ]; home-manager = { backupFileExtension = "bak"; useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { inherit inputs; inherit device; stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system}; cratesNix = inputs.crates-nix.mkLib {pkgs = nixpkgs.legacyPackages.${device.system};}; }; users.${device.user}.imports = [ inputs.nvf.homeManagerModules.default ../../home ]; }; } inputs.nixos-dns.nixosModules.dns ../dns-shared.nix ./configuration.nix ./services ./programs ./disk-config.nix ./${name}.nix ../../sops.nix # ../../stylix.nix ]; } ) devices)