79 lines
1.4 KiB
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;
|
|
};
|
|
};
|
|
};
|
|
}
|