{ lib, config, ... }: let inherit (builtins) elem; inherit (lib.options) mkOption; inherit (lib.strings) getName; inherit (lib.types) listOf str; predicate = pkg: elem (getName pkg) config.allowedUnfreePackages; in { options.allowedUnfreePackages = mkOption { type = listOf str; default = [ ]; }; config.flake.modules = { nixos.default.nixpkgs.config.allowUnfreePredicate = predicate; darwin.default.nixpkgs.config.allowUnfreePredicate = predicate; }; }