{lib, ...}: let rootDirs = builtins.readDir ./.; removeFiles = lib.attrsets.filterAttrs (n: v: v == "directory") rootDirs; programsToPatch = builtins.attrNames removeFiles; bigOverlay = final: prev: lib.attrsets.mergeAttrsList ( lib.lists.forEach programsToPatch ( program: let unpatchedProgram = prev."${program}"; newPatches = lib.toast.patches.patchesInPath (lib.path.append ./. program); in { "${program}" = unpatchedProgram.overrideAttrs { version = "${unpatchedProgram.version}-patched"; __intentionallyOverridingVersion = true; patches = unpatchedProgram.patches ++ newPatches; }; } ) ); in { nixpkgs.overlays = [ ( final: prev: { kdePackages = prev.kdePackages.overrideScope bigOverlay; } ) ]; }