Skip to content

Notifications

[notification]
enable_daemon = true # when false, don't claim org.freedesktop.Notifications; internal toasts still work
show_app_name = true # show the sending application name in toasts
position = "top_right" # top_right | top_left | top_center | bottom_right | bottom_left | bottom_center
layer = "top" # top | overlay; overlay appears above fullscreen apps
scale = 1.0 # toast size multiplier on top of shell.ui_scale
background_opacity = 0.97 # toast card background alpha; lower values let compositor blur show through
offset_x = 20 # absolute horizontal margin from the screen edge
offset_y = 8 # absolute vertical margin from the screen edge
monitors = [] # 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 = true
match = "rhythmbox"
show_toast = true
save_history = false
play_sound = true
# 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).
  • When monitors is non-empty, toasts are only created on matching monitors.
  • If none of the configured monitors are currently connected (e.g. an external display was undocked), Noctalia falls back to showing toasts on all available monitors so notifications never disappear silently. Targeting is restored automatically when a configured monitor reconnects.
  • Selector matching follows monitor override rules: exact connector name (eDP-1) or a word-boundary token in the monitor description.
  • Internal Noctalia notifications are transient toasts and are not stored in notification history.
  • 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.
    • 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).

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 Shell & UI → Notifications.