#
# System notifications
#

{ config, lib, pkgs, ... }:

let
  colors = import ../themes/colors.nix;                 # Import colors theme

  dunst-volume-notification = pkgs.writeShellScriptBin "volume-notify" ''
    if [ "$(pulsemixer --get-mute)" = "0" ]; then dunstify -u low -r 1 "墳 $(pulsemixer --get-volume | awk '{print $1}')%"
    else dunstify -u low -r 1 "婢 Muted"; fi
  '';
  dunst-brightness-notification = pkgs.writeShellScriptBin "brightness-notify" ''    
    dunstify -u low -r 1 " $(light -G)%"
  '';
in
{
  cmds.notifications.volume = "volume-notify";
  cmds.notifications.brightness = "brightness-notify";

  home.packages = [
    dunst-volume-notification
    dunst-brightness-notification
    pkgs.libnotify
  ];

  services.dunst = {
    enable = true;
    settings = {
      global = {
        monitor = 0;
        follow = "keyboard";
        indicate_hidden = "yes";
        shrink = true;
        transparency = 0;
        origin = "top-center";
        offset = "0x20";
        seperator_height = 0;
        padding = 12;
        horizontal_padding = 20;
        frame_width = 4;
        seperator_color = "auto";
        font = "${config.theme.font}";
        markup = "full";
        format = "<span foreground='#b3cfa7'><b>%s</b>%p</span>\n%b";
        alignment = "center";
        show_age_threshold = 60;
        word_wrap = "yes";
        ellipsize = "middle";
        ignore_newline = "no";
        stack_duplicates = true;
        hide_duplicate_count = true;
        show_indicators = "yes";
        icon_position = "off";
        sticky_history = "yes";
        history_length = 20;
        always_run_script = true;
        browser = "/usr/bin/xdg-open";
        corner_radius = 12;
        force_xinerama = false;
        mouse_left_click = "close_current";
        mouse_middle_click = "do_action";
        mouse_right_click = "close_all";
        progress_bar_min_width = "200";
        enable_recursive_icon_lookup = true;
      };

      urgency_low.timeout = 4;
      urgency_normal.timeout = 8;
      urgency_critical.timeout = 0;
    };

  };
  xdg.dataFile."dbus-1/services/org.knopwob.dunst.service".source = "${pkgs.dunst}/share/dbus-1/services/org.knopwob.dunst.service";
}