ooknet/modules/nixos/appearance/options.nix

79 lines
1.4 KiB
Nix

{lib, ...}: let
inherit (lib) mkOption;
inherit (lib.types) str package path int bool submodule nullOr;
mkVariantOption = {
regular = mkOption {
type = str;
default = "";
};
bold = mkOption {
type = str;
default = "";
};
italic = mkOption {
type = str;
default = "";
};
boldItalic = mkOption {
type = str;
default = "";
};
};
mkBaseFontOption = {
family = mkOption {
type = str;
default = "";
};
variants = mkVariantOption;
package = mkOption {
type = package;
default = null;
};
size = mkOption {
type = int;
default = 18;
};
bitmap = mkOption {
type = bool;
default = false;
};
};
mkFontOption =
mkBaseFontOption
// {
fallback = mkOption {
type = nullOr (submodule {options = mkBaseFontOption;});
default = null;
};
};
in {
# imports = [./palettes];
options.ooknet.appearance = {
fonts = {
monospace = mkFontOption;
regular = mkFontOption;
};
wallpaper = {
path = mkOption {
type = path;
default = null;
};
};
cursor = {
package = mkOption {
type = package;
default = null;
};
name = mkOption {
type = str;
default = "";
};
size = mkOption {
type = int;
default = 22;
};
};
};
}