nix/options.nix

145 lines
3.7 KiB
Nix

{
lib,
config,
pkgs,
...
}:
{
options = {
colors = {
scheme = lib.mkOption {
type = lib.types.str;
default = "catppuccin-mocha";
};
accent = lib.mkOption {
type = lib.types.str;
default = "base09";
};
};
userOptions = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "Sean Kovacs";
};
username = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "sckova";
};
hostname = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = config.system.name;
};
email = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "kovacsmillio@gmail.com";
};
fontSans = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "Noto Sans";
};
size = lib.mkOption {
type = lib.types.int;
readOnly = true;
default = 11;
};
package = lib.mkOption {
type = lib.types.package;
readOnly = true;
default = pkgs.noto-fonts;
};
};
fontSerif = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "Noto Serif";
};
size = lib.mkOption {
type = lib.types.int;
readOnly = true;
default = 11;
};
package = lib.mkOption {
type = lib.types.package;
readOnly = true;
default = pkgs.noto-fonts;
};
};
fontMono = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "FiraMono Nerd Font Mono";
};
size = lib.mkOption {
type = lib.types.int;
readOnly = true;
default = 10;
};
package = lib.mkOption {
type = lib.types.package;
readOnly = true;
default = pkgs.nerd-fonts.fira-mono;
};
};
fontEmoji = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "Noto Emoji";
};
size = lib.mkOption {
type = lib.types.int;
readOnly = true;
default = 10;
};
package = lib.mkOption {
type = lib.types.package;
readOnly = true;
default = pkgs.noto-fonts-color-emoji;
};
};
cursor = {
name = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = config.colors.scheme;
};
package = lib.mkOption {
type = lib.types.package;
readOnly = true;
default =
with config.scheme;
(pkgs.bibata-cursor.override {
themeName = config.colors.scheme;
baseColor = withHashtag.${config.colors.accent};
outlineColor = withHashtag.base00;
watchBackgroundColor = withHashtag.base11;
cursorSizes = "16 20 22 24 28 32 40 48 56 64 72 80 88 96";
});
};
size = lib.mkOption {
type = lib.types.int;
readOnly = true;
default = 24;
};
path = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "${config.userOptions.cursor.package}/share/icons/${config.colors.scheme}";
};
};
# isDark = lib.mkOption {
# type = lib.types.bool;
# readOnly = true;
# default = config.catppuccin.flavor != "latte";
# };
};
};
}