{ inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11"; nix-darwin.url = "github:nix-darwin/nix-darwin?ref=nix-darwin-25.11"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote.url = "github:nix-community/lanzaboote?ref=master"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, ... }@inputs: let supportedSystems = [ "x86_64-linux" "aarch64-darwin" ]; lib = import ./lib { inherit (inputs.nixpkgs) lib; }; pkgsFor = system: import inputs.nixpkgs { inherit system; config.allowUnfree = true; }; forEachSupportedSystem = f: inputs.nixpkgs.lib.genAttrs supportedSystems ( system: f { inherit system; pkgs = pkgsFor system; } ); in { nixosConfigurations."persephone" = nixpkgs.lib.nixosSystem { modules = [ inputs.lanzaboote.nixosModules.lanzaboote ./machines/persephone.nix ]; }; darwinConfigurations."hermes" = inputs.nix-darwin.lib.darwinSystem { modules = [ { system.configurationRevision = self.rev or self.dirtyRev or null; } ./machines/hermes.nix ]; }; devShells = forEachSupportedSystem ( { pkgs, system }: { default = pkgs.mkShellNoCC { packages = with pkgs; [ self.formatter.${system} nixd ]; }; } ); formatter = forEachSupportedSystem ({ pkgs, ... }: pkgs.nixfmt-rfc-style); }; }