Skip to content

notification

Notification center: icon in the bar, dropdown with history, DND toggle.

Add it to your layout with notification:

toml
[[bar.layout]]
monitor = "*"
right = ["notification"]

General

FieldTypeDefaultDescription
icon-namestring"ld-bell-symbolic"Icon shown when no notifications and DND is off.
icon-unreadstring"ld-bell-dot-symbolic"Icon shown when notifications exist.
icon-dndstring"ld-bell-off-symbolic"Icon shown when Do Not Disturb is active.
border-showboolfalseDisplay border around button.
icon-showbooltrueDisplay module icon.
label-showbooltrueDisplay notification count label.
label-max-lengthu320Max label characters before truncation with ellipsis. Set to 0 to disable.
blocklistarray of string[]Glob patterns for app names whose notifications are blocked entirely.
icon-sourceIconSource"automatic"How notification icons are resolved.
popup-positionPopupPosition"top-right"Screen position for popup notifications.
popup-max-visibleu325Maximum number of popups visible at once.
popup-stacking-orderStackingOrder"newest-first"Order in which popups stack on screen.
popup-durationu325000Maximum popup display duration in milliseconds.
popup-hover-pausebooltruePause popup auto-dismiss timer on hover.
popup-margin-xSpacing0Horizontal margin from screen edges.
popup-margin-ySpacing0Vertical margin from screen edges.
popup-gapSpacing8Gap between stacked popups.
popup-monitorPopupMonitor"primary"Target monitor: "primary" or a connector name like "DP-1".
popup-close-behaviorPopupCloseBehavior"dismiss"What happens when the close button on a popup is clicked.
popup-shadowbooltrueDisplay drop shadow on popup cards.
popup-urgency-barUrgencyBarThreshold"low"Minimum urgency level that displays a colored urgency bar.
thresholdsarray of ThresholdEntry[]Dynamic color thresholds based on notification count.
More about blocklist

Matched notifications are silently dropped. Supports * (any characters) and ? (single character).

Examples: ["notify-send", "*chromium*", "Vivaldi*"]

More about icon-source
ModePer-notification imageNo image provided
automaticShows the imageMapped icon
mappedIgnoredMapped icon
applicationShows the imageApp's generic icon, then mapped fallback
More about popup-duration

Applications may request a shorter timeout, which takes precedence.

More about thresholds

Entries are checked in order; the last matching entry wins for each color slot. Use above for high-value warnings (e.g., many unread notifications).

Example

toml
[[modules.notification.thresholds]]
above = 5
icon-color = "status-warning"
label-color = "status-warning"

[[modules.notification.thresholds]]
above = 20
icon-color = "status-error"
label-color = "status-error"

Colors

FieldTypeDefaultDescription
border-colorColorValue"green"Border color token.
icon-colorColorValue"auto"Icon foreground color. Auto selects based on variant for contrast.
icon-bg-colorColorValue"green"Icon container background color token.
label-colorColorValue"green"Label text color token.
button-bg-colorColorValue"bg-surface-elevated"Button background color token.

Click actions

FieldTypeDefaultDescription
left-clickClickAction"dropdown:notification"Action on left click.
right-clickClickAction"wayle notify dnd"Action on right click. Default toggles Do Not Disturb.
middle-clickClickAction""Action on middle click.
scroll-upClickAction""Action on scroll up.
scroll-downClickAction""Action on scroll down.

Default configuration

toml
[modules.notification]
icon-name = "ld-bell-symbolic"
icon-unread = "ld-bell-dot-symbolic"
icon-dnd = "ld-bell-off-symbolic"
border-show = false
border-color = "green"
icon-show = true
icon-color = "auto"
icon-bg-color = "green"
label-show = true
label-color = "green"
label-max-length = 0
button-bg-color = "bg-surface-elevated"
left-click = "dropdown:notification"
right-click = "wayle notify dnd"
middle-click = ""
scroll-up = ""
scroll-down = ""
blocklist = []
icon-source = "automatic"
popup-position = "top-right"
popup-max-visible = 5
popup-stacking-order = "newest-first"
popup-duration = 5000
popup-hover-pause = true
popup-margin-x = 0.0
popup-margin-y = 0.0
popup-gap = 8.0
popup-monitor = "primary"
popup-close-behavior = "dismiss"
popup-shadow = true
popup-urgency-bar = "low"
thresholds = []

Released under the MIT License.