# dunst, the notifier (module dunst, novox/hq ADR 0208). Owned by the mesh: this file is replaced # at every push. Adopted from the laptop's file of 2026-10-04 (the two workstations differed in # position, transparency and corner radius; the laptop's square, opaque, top-right one matches the # rest of the desktop). Only what differs from dunst's defaults, and what the desktop relies on. # # Other modules' rules go in ~/.config/dunst/dunstrc.d/*.conf, which dunst reads after this file, # so a drop-in outranks it. dunst is started by D-Bus on the first notification: nothing starts it. # When the mesh rewrites this file (a font-size or width setting changed), it tells a running dunst # to read it again (its unit's reload, dunstctl reload); what is on screen stays. [global] monitor = 0 follow = none # Geometry width = ${setting:width} height = (0, 300) origin = top-right offset = (10, 50) notification_limit = 20 progress_bar = true progress_bar_height = 10 progress_bar_frame_width = 1 progress_bar_min_width = 150 progress_bar_max_width = 300 indicate_hidden = yes transparency = 0 separator_height = 2 padding = 8 horizontal_padding = 8 text_icon_padding = 0 frame_width = 3 frame_color = "#de5200" gap_size = 0 separator_color = frame sort = yes corner_radius = 0 # Text: the interface face (research 026/04) font = Inter ${setting:font-size} line_height = 0 markup = full format = "%s\n%b" alignment = left vertical_alignment = center show_age_threshold = 60 ellipsize = middle ignore_newline = no stack_duplicates = true hide_duplicate_count = false show_indicators = yes # Icons, from the desktop's icon theme enable_recursive_icon_lookup = true icon_theme = Adwaita icon_position = left min_icon_size = 32 max_icon_size = 128 # History sticky_history = yes history_length = 20 # The context menu is rofi (installed by the rofi module); -no-custom keeps typed text from becoming a choice. Not `dmenu`, the node-launcher's command in # ~/.local/bin: dunst runs in the account's service manager, whose PATH does not hold that # directory (seen on the laptop on 2026-10-10), so the menu never opened. Links open in the # desktop's default browser. dmenu = rofi -dmenu -no-custom -p dunst browser = /usr/bin/xdg-open always_run_script = true title = Dunst class = Dunst ignore_dbusclose = false # A tap answers (the touchpads have no middle button). do_action runs the notification's only # action, or opens the context menu when it has several; without actions it opens its one link, # if it has one. The notification then closes; a menu dismissed with Escape leaves it shown. mouse_left_click = do_action, close_current mouse_middle_click = do_action, close_current mouse_right_click = close_all [urgency_low] background = "#000000" foreground = "#ffffff" timeout = 10 [urgency_normal] background = "#000000" foreground = "#ffffff" timeout = 10 [urgency_critical] background = "#000000" foreground = "#ffffff" frame_color = "#ff0000" timeout = 0 # What is shown once is never kept (the review of 2026-10-09): a notification marked secret (a link's # code, category mesh.secret) and any transient one leave no entry in the history, which # node-notifier.history serves to every caller of the mesh's verbs. [mesh-secret] category = "mesh.secret" history_ignore = yes [transient-history-ignore] match_transient = yes history_ignore = yes