{ inputs, ... }: { generate = { type, system, host }: ({ "nixos" = inputs.nixpkgs.lib.nixosSystem { system = system; modules = [ inputs.sops-nix.nixosModules.sops ./modules/nixos ./systems/${host} inputs.home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.users.sora = { imports = [ ./modules/home inputs.nix-colors.homeManagerModule inputs.hyprland.homeManagerModules.default ./systems/${host}/home.nix ]; }; } ]; }; "macos" = inputs.darwin.lib.darwinSystem { system = system; modules = [ inputs.sops-nix.nixosModules.sops ./systems/${host} inputs.home-manager.darwinModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.users.sora = { imports = [ inputs.nix-colors.homeManagerModule inputs.hyprland.homeManagerModules.default ./systems/${host}/home.nix ]; }; } ]; }; "home" = inputs.home-manager.lib.homeManagerConfiguration { modules = [ ./modules/home ./systems/${host}/home.nix ]; }; _ = throw "Unsupported system"; }.${type}); }