{ self, ... }@inputs: let forAllSystems = inputs.nixpkgs.lib.genAttrs inputs.nixpkgs.lib.systems.flakeExposed; mkSystem = import ./lib/mkSystem.nix { inherit inputs; flake = self; flakeRoot = ./.; }; overlayAllSystems = path: forAllSystems ( system: let pkgs = import inputs.nixpkgs { inherit system; }; flake = self; in import path { inherit flake pkgs; } ); in { formatter = forAllSystems (system: inputs.nixpkgs.legacyPackages.${system}.nixfmt-tree); packages = overlayAllSystems ./packages; nixosModules = import ./modules; checks = overlayAllSystems ./tests; devShells = overlayAllSystems ./shells; nixosConfigurations = { encryption = mkSystem { hostName = "encryption"; system = "x86_64-linux"; }; decryption = mkSystem { hostName = "decryption"; system = "x86_64-linux"; isLaptop = true; }; prospect = mkSystem { hostName = "prospect"; system = "x86_64-linux"; }; index = mkSystem { hostName = "index"; system = "x86_64-linux"; extraModules = [ inputs.vpn-confinement.nixosModules.default inputs.tangled.nixosModules.knot inputs.tangled.nixosModules.spindle ]; }; }; }