{ lib, pkgs, config, ... }: with lib; let cfg = config.neotheme; in { options.neotheme = { wallpaper = mkOption { type = types.str; default = ""; description = "path for wallpaper image file"; example = "/weird/dir/wallpaper.png"; }; palette = { identifier = mkOption { type = types.str; default = ""; description = "palette identifier"; example = "mytheme"; }; name = mkOption { type = types.str; default = ""; description = "palette name"; example = "My Amazing Theme"; }; colors = let mkColorOption = name: { inherit name; value = mkOption { type = types.strMatching "[a-fA-F0-9]{6}"; description = "color ${name}."; }; }; in listToAttrs (map mkColorOption [ "background" "foreground" "color0" "color1" "color2" "color3" "color4" "color5" "color6" "color7" "bright0" "bright1" "bright2" "bright3" "bright4" "bright5" "bright6" "bright7" ]); }; }; }