dotfiles/user-modules/theming/themes/gruvbox.nix

35 lines
675 B
Nix

{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.theming.themes.gruvbox;
mode = if cfg.darkMode then "dark" else "light";
in
{
options = {
theming.themes.gruvbox = {
enable = mkEnableOption "gruvbox-hard";
darkMode = mkEnableOption "dark mode";
contrast = mkOption {
type = types.enum [
"hard"
"medium"
"soft"
];
default = "hard";
description = "The contrast level of the theme.";
};
};
};
config.theming = mkIf cfg.enable {
darkMode = cfg.darkMode;
colorScheme = "${pkgs.base16-schemes}/share/themes/gruvbox-${mode}-${cfg.contrast}.yaml";
};
}