let inputs = import ./inputs.nix; inherit (inputs) nixpkgs; inherit (nixpkgs) lib; recursivelyImport = import ./recursively-import.nix { inherit lib; }; recursivePkgs = import ./recursive-pkgs.nix { inherit lib; }; in { systems = definitions: nixpkgs.lib.mapAttrs ( name: info: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; userPkgs = recursivePkgs ../pkg; mainUser = info.user; }; modules = [ inputs.home-manager.nixosModules.home-manager (lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" info.user ]) ] ++ (recursivelyImport info.imports); } ) definitions; }