{ inputs, self, ... }: let inherit (inputs) nixpkgs darwin home-manager; inherit (nixpkgs.lib) mkMerge; mkDarwinConfig = system: path: darwin.lib.darwinSystem { inherit system; modules = [ home-manager.darwinModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { inherit self; }; }; } "${self}/nix/hosts/darwin/" "${self}/nix/hosts/common/nix.nix" path { nixpkgs.overlays = [ ]; } ]; specialArgs = { inherit inputs self; }; }; mkNixosConfig = system: path: nixpkgs.lib.nixosSystem { inherit system; modules = [ "${self}/nix/hosts/nixos" "${self}/nix/hosts/common/nix.nix" path ]; specialArgs = { inherit inputs self; }; }; in { flake = mkMerge [{ darwinConfigurations = { mba-fcuny = mkDarwinConfig "aarch64-darwin" "${self}/nix/hosts/darwin/mba"; HQ-C02FK3Q7MD6T = mkDarwinConfig "x86_64-darwin" "${self}/nix/hosts/darwin/work"; }; nixosConfigurations = { vm = mkNixosConfig "aarch64-linux" "${self}/nix/hosts/nixos/vm"; wildcat = mkNixosConfig "x86_64-linux" "${self}/nix/hosts/nixos/wildcat"; }; }]; }