NixOS/scripts/scheme-utils.nix
2025-10-02 22:08:00 -06:00

29 lines
1014 B
Nix

{ pkgs, inputs }:
let
schemesConfig = import ../config/schemes.nix { inherit pkgs inputs; };
availableSchemes = builtins.attrNames schemesConfig.schemes;
in
{
inherit availableSchemes;
lightSchemes = builtins.filter (
name: schemesConfig.schemes.${name}.polarity == "light"
) availableSchemes;
darkSchemes = builtins.filter (
name: schemesConfig.schemes.${name}.polarity == "dark"
) availableSchemes;
schemesByColor =
color: builtins.filter (name: schemesConfig.schemes.${name}.color == color) availableSchemes;
getScheme = name: schemesConfig.schemes.${name};
isValidScheme = name: builtins.hasAttr name schemesConfig.schemes;
availableColors = pkgs.lib.unique (
builtins.filter (color: color != null) (
builtins.map (name: schemesConfig.schemes.${name}.color) availableSchemes
)
);
availableBase16Schemes = pkgs.lib.unique (
builtins.filter (name: name != null) (
builtins.map (name: schemesConfig.schemes.${name}.name) availableSchemes
)
);
}