{ lib, ... }: with lib; { options.theme = { rounding = mkOption { type = types.int; description = "Borders rounding"; }; gaps-in = mkOption { type = types.int; description = "Gaps in"; }; gaps-out = mkOption { type = types.int; description = "Gaps out"; }; border-size = mkOption { type = types.int; description = "Border size"; }; colors = let mkColorOption = name: { inherit name; value = mkOption { type = types.strMatching "[a-fA-F0-9]{6}"; description = "Color ${name}."; }; }; in listToAttrs (map mkColorOption [ "bg" "fg" "alt-bg" "alt-fg" "primary-bg" "primary-fg" "secondary-bg" "secondary-fg" "cursor" "color0" "color1" "color2" "color3" "color4" "color5" "color6" "color7" "color8" "color9" "color10" "color11" "color12" "color13" "color14" "color15" ]); }; }