{ description = "Jon's NixOS configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager, ... }: let system = "x86_64-linux"; lib = nixpkgs.lib.extend ( final: prev: { custom = import ./lib.nix nixpkgs.lib; } ); pkgs = import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ self.overlays.default ]; }; in { overlays.default = import ./overlay.nix {inherit inputs system;}; nixosModules = { nixosConfig = import ./.;} // lib.custom.mapModulesRec ./modules import; nixosConfigurations = let mkHost = system: path: lib.nixosSystem { inherit system; specialArgs = {inherit lib inputs system; rootPath=./.;}; modules = [ { nixpkgs.pkgs = pkgs; modules.device.name = lib.mkDefault (builtins.baseNameOf path); } ./. (import path) ]; }; in lib.custom.mapModules ./hosts (mkHost system); }; }