niksos/modules/services/dunst.nix
2024-08-06 17:47:06 +02:00

100 lines
3.7 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
cfg = config.poz.services.dunst;
inherit (config.poz.other.system) username;
inherit (lib.meta) getExe getExe';
inherit (lib.modules) mkIf;
inherit (lib.options) mkEnableOption;
xdg-open = getExe' pkgs.xdg-utils "xdg-open";
in {
options.poz.services.dunst.enable = mkEnableOption "dunst";
config = mkIf cfg.enable {
home-manager.users.${username} = {
services.dunst = {
enable = true;
settings = {
global = {
monitor = 1;
follow = "none";
width = 300;
height = 300;
origin = "top-center";
offset = "0x15";
scale = 0;
notification_limit = 3;
idle_threshold = 120;
progress_bar = true;
progress_bar_height = 10;
progress_bar_frame_width = 0;
progress_bar_min_width = 150;
progress_bar_max_width = 300;
indicate_hidden = "yes";
transparency = 10;
separator_height = 2;
padding = 10;
frame_width = 3;
frame_color = "#89B4FA";
separator_color = "frame";
highlight = "#89DCEB";
sort = "yes";
font = "JetBrains Mono 12";
line_height = 0;
markup = "full";
format = "<b>%s</b>\n%b";
alignment = "right";
vertical_alignment = "center";
show_age_threshold = 60;
ellipsize = "middle";
ignore_newline = "no";
stack_duplicates = true;
hide_duplicate_count = false;
show_indicators = "yes";
icon_position = "left";
min_icon_size = 0;
max_icon_size = 32;
sticky_history = "yes";
history_length = 20;
dmenu = "${getExe pkgs.rofi-wayland}";
browser = "${xdg-open}";
always_run_script = true;
title = "Dunst";
class = "dunst";
corner_radius = 10;
ignore_dbusclose = false;
force_xwayland = false;
force_xinerama = false;
mouse_left_click = "do_action, close_current";
mouse_middle_click = "context";
mouse_right_click = "close_all";
};
experimental = {
per_monitor_dpi = false;
};
urgency_low = {
background = "#1E1E2E";
foreground = "#CDD6F4";
timeout = 5;
};
urgency_normal = {
background = "#1E1E2E";
foreground = "#CDD6F4";
timeout = 6;
};
urgency_critical = {
background = "#1E1E2E";
foreground = "#CDD6F4";
frame_color = "#FAB387";
timeout = 0;
};
};
};
};
};
}