34 lines
1.1 KiB
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";
|
|
};
|
|
}
|