nixos/home/variables/theme/config/template.nix
2024-03-15 21:26:34 +01:00

84 lines
1.5 KiB
Nix

{ lib, ... }:
with lib;
{
options.theme = {
waybar-transparent = mkOption {
type = types.bool;
description = "Does waybar have a transparent background?";
};
wallpaper = mkOption {
type = types.str;
description = "Name of the wallpaper (from the wallpapers directory)";
};
font = mkOption {
type = types.str;
description = "Default font";
};
font-mono = mkOption {
type = types.str;
description = "Default mono font";
};
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"
"color0"
"color1"
"color2"
"color3"
"color4"
"color5"
"color6"
"color7"
"color8"
"color9"
"color10"
"color11"
"color12"
"color13"
"color14"
"color15"
]);
};
}