{ description = "nix-config — multi-host Nix configurations"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nix-darwin, home-manager, sops-nix, disko, ... }: let mkNixos = hostname: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/common ./hosts/${hostname} sops-nix.nixosModules.sops disko.nixosModules.disko home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.mikl = import ./home; }; } ]; }; mkDarwin = hostname: nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; modules = [ ./hosts/common-darwin ./hosts/${hostname} home-manager.darwinModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.mikl = import ./home; }; } ]; }; in { nixosConfigurations = { muscari = mkNixos "muscari"; rosemary = mkNixos "rosemary"; }; darwinConfigurations = { poppy = mkDarwin "poppy"; }; }; }