v5-services-notifications.md
[notification]enable_daemon = true # when false, don't claim org.freedesktop.Notifications; internal toasts still workshow_app_name = true # show the sending application name in toastsshow_actions = true # show action buttons; when false, clicking a toast triggers its default actionposition = "top_right" # top_right | top_left | top_center | bottom_right | bottom_left | bottom_centerlayer = "top" # top | overlay; overlay appears above fullscreen appsscale = 1.0 # toast size multiplier on top of shell.ui_scalebackground_opacity = 0.97 # toast card background alpha; lower values let compositor blur show throughoffset_x = 20 # absolute horizontal margin from the screen edgeoffset_y = 8 # absolute vertical margin from the screen edgemonitors = [] # empty = all monitors; otherwise connector/description selectors (e.g. ["eDP-1", "DP-1"])collapse_on_dismiss = true # slide remaining toasts to close gaps when one is dismissed
[notification.filter.rhythmbox]enabled = truematch = "rhythmbox"# match_content = "now playing" # optional regex matched against summary or bodyshow_toast = truesave_history = falseplay_sound = true# allow_permanent = true # allow this sender to create persistent (0-timeout) toasts# override_duration = 5000 # override the timeout (in ms) for all toasts from this sender# allowed_urgencies = ["normal", "critical"] # omit or list all three to allow every level
layer = "top" keeps toasts above normal app windows.layer = "overlay" shows toasts above fullscreen apps.offset_x and offset_y are absolute margins from the nearest screen edge for the configured position.monitors = [] shows notifications on all monitors (default).monitors is non-empty, toasts are only created on matching monitors.eDP-1) or a word-boundary token in the monitor description.collapse_on_dismiss = true (default) causes remaining toasts to slide into a compact stack when one is dismissed. Set to false for stable-slot behavior where toasts keep their original positions.External notifications (from org.freedesktop.Notifications clients) can be filtered before toasts, sounds, and control-center history:
[notification.filter.<name>] - per-sender rules evaluated in filter_order (first matching enabled filter wins). Each filter has:match - one case-insensitive token matched against the app name (exact or substring), desktop-entry, or category.match_content - optional regular expression matched against the notification summary or body.allowed_urgencies - when non-empty, only listed urgency levels pass this filter. Values: low, normal, critical. Omit or list all three to allow every level.show_toast - show a toast popup (default true).save_history - keep the notification in control-center history (default true).play_sound - play the notification sound when a toast is shown (default true).allow_permanent - allow this sender to create persistent (0-timeout) toasts (default true). When false, persistent toasts are forced to the standard expiration timeout.override_duration - force a specific display duration in milliseconds, overriding both the default timeout and any timeout requested by the sender.When no filter matches, all flags default to allow. A fully suppressed notification (no toast and no history) still returns a valid D-Bus id; CloseNotification on that id succeeds without showing a toast.
Legacy blacklist keys are migrated on read into filters with all actions disabled. Legacy top-level allowed_urgencies is migrated onto filters that do not already define their own list. Deprecated allow_critical / blacklist_allow_critical keys are ignored on read.
Configure filtering in Settings → Notifications → Filtering , or in the Noctalia TOML config stack.
For Do Not Disturb status/toggle commands and notification clear actions, see Media & UI → Notifications.