rose-pine-nix/modules/home-manager/dunst.nix

34 lines
1.1 KiB
Nix

{
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.services.dunst.rose-pine;
enable = cfg.enable && config.services.dunst.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.services.dunst.rose-pine =
lib.rp.mkRosePineOpt {name = "dunst";}
// {
prefix = lib.mkOption {
type = lib.types.str;
default = "00";
description = "Prefix to use for the dunst drop-in file";
};
};
# Dunst currently has no "include" functionality, but has "drop-ins".
# Unfortunately, this may cause inconvenience as it overrides
# ~/.config/dunst/dunstrc but it can be overridden by another drop-in.
config.xdg.configFile = lib.mkIf enable {
# Using a prefix like this is necessary because drop-ins' precedence depends
# on lexical order such that later drop-ins override earlier ones.
# This way, users have better control over precedence.
"dunst/dunstrc.d/${cfg.prefix}-rose-pine.conf".source =
sources.dunst + "/${themeName}.conf";
};
}