From 9fdb8aaf65afaa4262ba41bfac1f45c3a7cc36a0 Mon Sep 17 00:00:00 2001 From: Anomalocaridid <29845794+Anomalocaridid@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:02:56 -0400 Subject: [PATCH] fix(home-manager/dunst): avoid IFD (#302) --- modules/home-manager/dunst.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/home-manager/dunst.nix b/modules/home-manager/dunst.nix index e76e454..07a5dfc 100644 --- a/modules/home-manager/dunst.nix +++ b/modules/home-manager/dunst.nix @@ -5,9 +5,22 @@ let enable = cfg.enable && config.services.dunst.enable; in { - options.services.dunst.catppuccin = lib.ctp.mkCatppuccinOpt { name = "dunst"; }; + options.services.dunst.catppuccin = lib.ctp.mkCatppuccinOpt { name = "dunst"; } // { + prefix = lib.mkOption { + type = lib.types.str; + default = "00"; + description = "Prefix to use for the dunst drop-in file"; + }; + }; - config.services.dunst = lib.mkIf enable { - settings = lib.ctp.fromINI (sources.dunst + "/themes/${cfg.flavor}.conf"); + # 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}-catppuccin.conf".source = + sources.dunst + "/themes/${cfg.flavor}.conf"; }; }