{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager"; nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; }; outputs = inputs @ { self, home-manager, nixpkgs, nixpkgs-unstable, ... }: let inherit (lib.my) mapModules mapModulesRec mapHosts; system = "x86_64-linux"; mkPkgs = pkgs: extraOverlays: import pkgs { inherit system; config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "corefonts" "steam" "steam-original" "steam-run" ]; overlays = extraOverlays ++ (pkgs.lib.attrValues self.overlays); }; pkgs = mkPkgs nixpkgs [ self.overlay ]; pkgs-unstable = mkPkgs nixpkgs-unstable [ ]; lib = nixpkgs.lib.extend (self: super: { my = import ./lib { inherit pkgs inputs; lib = self; }; }); in { lib = lib.my; overlay = final: prev: { unstable = pkgs-unstable; }; overlays = { my = (import ./overlay.nix); }; nixosConfigurations = mapHosts ./hosts { }; }; }