-
Notifications
You must be signed in to change notification settings - Fork 1
Rules
locainin edited this page Jul 1, 2026
·
3 revisions
Rules apply per-notification overrides based on app metadata and notification fields. All matches are case-insensitive substring matches.
-
name: optional rule label for logging. -
app: app name match. -
summary: summary match. -
body: body match. -
category: category hint match. -
urgency:low,normal,critical(or0,1,2). -
no_popup: suppress popups. -
silent: suppress sound. -
force_urgency: override urgency (low,normal,critical). -
expire_timeout_ms: override timeout (-1default,0never expire). -
resident: force resident flag. -
transient: force transient flag.
Urgency values accept either strings or numbers:
-
lowor0 -
normalor1 -
criticalor2
Invalid urgency values make config loading fail instead of being guessed.
Rules are evaluated in order. Later rules can override earlier ones.
Rules are applied after the notification payload has been sanitized and before popup, sound, and expiration decisions are made. That means a rule can:
- silence a notification before sound playback
- suppress a popup while still allowing history storage
- force critical urgency before DND popup filtering runs
- change timeout behavior for matching notifications
Dismissed notifications are not archived. Transient notifications are archived only when
[history].transient_to_history = true, even if a rule marks the notification transient.
[[rules]]
name = "quiet-slack"
app = "slack"
no_popup = true
silent = true
[[rules]]
name = "critical-alerts"
summary = "alert"
force_urgency = "critical"
expire_timeout_ms = 10000