infra/flake/den/modules/aspects/provides/unfree.nix
2025-12-01 13:23:24 +07:00

22 lines
601 B
Nix

{ lib, ... }:
{
den.provides.unfree.description = ''
A class generic aspect that enables unfree packages by name.
Works for any class (nixos/darwin/homeManager,etc) on any host/user/home context.
## Usage
den.aspects.my-laptop.includes = [ (den._.unfree [ "code" ]) ];
It will dynamically provide a module for each class when accessed.
'';
den.provides.unfree.__functor =
_self: allowed-names:
# deadnix: allow
{ class, aspect-chain }:
{
${class}.nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) allowed-names;
};
}