{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager }: let system = "x86_64-linux"; machines = [ "graphite" "bismuth" ]; packageSets = let pkgsInputs = { inherit system; config = import ./config.nix; }; in rec { pkgs = import nixpkgs pkgsInputs; unstablePkgs = import nixpkgs-unstable pkgsInputs; auxiliaryPkgs = import ./pkgs { inherit pkgs unstablePkgs; }; }; in { nixosConfigurations = nixpkgs.lib.genAttrs machines (machine: nixpkgs.lib.nixosSystem { inherit system; specialArgs = inputs // packageSets // { me = machine; }; modules = [ ./machines/${machine} home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mel = import ./machines/${machine}/home.nix; } ]; } ); }; }