{ nixpkgs, home-manager, system, inputs, outputs, sharedModules, ... }: { systems = definitions: nixpkgs.lib.mapAttrs (name: info: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs outputs; mainUser = info.user; }; modules = [ ../system/${name}.nix home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; extraSpecialArgs = { inherit inputs outputs; mainUser = info.user; }; users.${info.user}.imports = [ ../home/${info.user}.nix ] ++ info.hmImports or []; }; } ] ++ info.imports or [] ++ sharedModules; }) definitions; }