{ inputs, lib, system, specialArgs, dots, user ? "rayandrew", ... }: let mkNixosConfiguration = host: { pkgs ? ( import inputs.nixpkgs { inherit system; config.allowUnfree = true; } ), }: lib.nixosSystem { inherit pkgs; specialArgs = specialArgs // { inherit host user dots; }; modules = [ inputs.disko.nixosModules.default ./${host} ./${host}/hardware.nix ../nixos { home-manager = { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = specialArgs // { inherit host user system dots; }; users.${user} = { imports = [ inputs.nix-index-database.hmModules.nix-index ./${host}/home.nix ../home ]; }; }; } # alias for home-manager (lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" user ]) inputs.home-manager.nixosModules.home-manager ]; }; in { nixosConfigurations = { pickwick = mkNixosConfiguration "pickwick" { }; }; }