{
  lib,
  config,
  ...
}: let
  inherit (lib) mkIf mkEnableOption mkOption types catppuccin;
  cfg = config.horseman.dots.dunst;
  username = config.horseman.username;
  colors = config.horseman.catppuccin.colors;
in {
  options = {
    horseman.dots.dunst = {
      enable = mkEnableOption "~/.config/dunst/dunstrc";
    };
  };

  config = mkIf cfg.enable {
    home-manager.users.${username}.xdg.configFile."dunst/dunstrc".text = ''
      [global]
      origin = top-left
      offset = (0, -46)
      font = CaskaydiaCove Nerd Font 12
      corner_radius = 10
      gap_size = 3

      mouse_right_click = context

      background  = "${catppuccin.toHex colors.base}"
      foreground  = "${catppuccin.toHex colors.text}"
      frame_color = "${catppuccin.toHex colors.blue}"
      highlight   = "${catppuccin.toHex colors.blue}"
      frame_width = 2

      [urgency_low]
      frame_color = "${catppuccin.toHex colors.overlay0}"

      [urgency_critical]
      frame_color = "${catppuccin.toHex colors.red}"
      highlight   = "${catppuccin.toHex colors.red}"
    '';
  };
}
