{inputs}: _: _: let mkComputer = { host, system, user, extraModules ? [], }: inputs.nixpkgs.lib.nixosSystem { inherit system; modules = extraModules ++ [ ../computers/${host} inputs.self.nixosModules.default ({config, ...}: { config = { alqueva.xonsh.enable = true; nix = { settings.extra-experimental-features = [ "nix-command" "flakes" ]; gc = { automatic = true; dates = "weekly"; }; }; nixpkgs.config.allowUnfree = true; environment.shellAliases = { rebs = "nixos-rebuild --use-remote-sudo switch --flake .#${host}"; rebt = "nixos-rebuild --use-remote-sudo test --flake .#${host}"; }; nixpkgs.overlays = [ inputs.self.overlays.default ]; networking.hostName = host; }; }) ]; specialArgs = { inherit inputs; inherit (inputs) self; }; }; in { mkComputers = computers: builtins.mapAttrs (n: v: mkComputer (v // {host = n;})) computers; }