117 lines
2.9 KiB
Nix
117 lines
2.9 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
options,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
options.mods.stylix = {
|
|
colorscheme = lib.mkOption {
|
|
default = {
|
|
# custom tokyo night
|
|
base00 = "1A1B26";
|
|
# base01 = "16161E";
|
|
# base01 = "15161e";
|
|
base01 = "191a25";
|
|
base02 = "2F3549";
|
|
base03 = "444B6A";
|
|
base04 = "787C99";
|
|
base05 = "A9B1D6";
|
|
base06 = "CBCCD1";
|
|
base07 = "D5D6DB";
|
|
base08 = "C0CAF5";
|
|
base09 = "A9B1D6";
|
|
base0A = "0DB9D7";
|
|
base0B = "9ECE6A";
|
|
base0C = "B4F9F8";
|
|
# base0D = "2AC3DE";
|
|
# base0D = "A9B1D6";
|
|
# base0D = "62A0EA";
|
|
# base0D = "779EF1";
|
|
base0D = "366fea";
|
|
base0E = "BB9AF7";
|
|
base0F = "F7768E";
|
|
};
|
|
example = "catppuccin-mocha";
|
|
type =
|
|
with lib.types;
|
|
oneOf [
|
|
str
|
|
attrs
|
|
path
|
|
];
|
|
description = ''
|
|
Base16 colorscheme.
|
|
Can be an attribute set with base00 to base0F,
|
|
a string that leads to a yaml file in base16-schemes path,
|
|
or a path to a custom yaml file.
|
|
'';
|
|
};
|
|
cursor = lib.mkOption {
|
|
default = {
|
|
package = pkgs.bibata-cursors;
|
|
name = "Bibata-Modern-Classic";
|
|
size = 24;
|
|
};
|
|
example = { };
|
|
type = with lib.types; attrsOf anything;
|
|
description = "Xcursor config";
|
|
};
|
|
fonts = lib.mkOption {
|
|
default = {
|
|
serif = {
|
|
package = pkgs.cantarell-fonts;
|
|
name = "Cantarell";
|
|
};
|
|
|
|
sansSerif = {
|
|
package = pkgs.cantarell-fonts;
|
|
name = "Cantarell";
|
|
};
|
|
|
|
monospace = {
|
|
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
|
name = "JetBrainsMono Nerd Font Mono";
|
|
};
|
|
|
|
emoji = {
|
|
package = pkgs.noto-fonts-emoji;
|
|
name = "Noto Color Emoji";
|
|
};
|
|
};
|
|
example = { };
|
|
type = with lib.types; attrsOf anything;
|
|
description = "font config";
|
|
};
|
|
};
|
|
config = (
|
|
lib.optionalAttrs (options ? stylix) {
|
|
stylix = {
|
|
enable = true;
|
|
image = ../../base/black.jpg;
|
|
polarity = "dark";
|
|
targets = {
|
|
nixvim.enable = false;
|
|
fish.enable = false;
|
|
};
|
|
fonts = config.mods.stylix.fonts;
|
|
cursor = config.mods.stylix.cursor;
|
|
base16Scheme = (
|
|
if builtins.isAttrs config.mods.stylix.colorscheme then
|
|
config.mods.stylix.colorscheme
|
|
else
|
|
"${pkgs.base16-schemes}/share/themes/${config.mods.stylix.colorscheme}.yaml"
|
|
);
|
|
};
|
|
}
|
|
// lib.optionalAttrs (options ? environment.systemPackages) {
|
|
environment.systemPackages = [
|
|
config.mods.stylix.fonts.serif.package
|
|
config.mods.stylix.fonts.sansSerif.package
|
|
config.mods.stylix.fonts.monospace.package
|
|
config.mods.stylix.fonts.emoji.package
|
|
];
|
|
}
|
|
);
|
|
}
|