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