Skip to content

Inbox

The native inbox collects structured messages published by Lua widgets or the easybar inbox CLI into one bar item. It displays the total unread count and can group messages by source, date, category, severity, or not at all.

[builtins.inbox]
enabled = true
position = "right"
order = 5

[builtins.inbox.content]
group_by = "source"
show_unread_count = true
show_source_actions = true
popup_width = 360
popup_max_height = 540
use_inactive_style_when_read = true
show_when_empty = true

Appearance

The unread and read states have independent icons and colors:

[builtins.inbox.style]
unread_icon = "􀛬"
read_icon = "􀍕"
unread_icon_color = "theme.text_secondary"
read_icon_color = "theme.muted"
unread_count_color = "theme.accent"

[builtins.inbox.colors] controls the popup background, border, title, body, muted labels, item background, actions, and severity indicators.

Behavior

When there are no unread messages, use_inactive_style_when_read selects read_icon and read_icon_color. Otherwise the anchor uses unread_icon and unread_icon_color. Set show_when_empty = false to hide the anchor when no messages exist. Set show_unread_count = false to retain the stateful icon without its numeric badge.

The popup header exposes publisher-provided source submenus through its actions button. Opening the menu temporarily suspends hover-driven popup dismissal. After selecting an asynchronous source action, the inbox remains open while the publisher reports that action as busy and shows a compact progress row below the header. Set show_source_actions = false to hide these actions while retaining the inbox-wide controls.

See Native Inbox for Lua for publishing snapshots, limited Markdown, item actions, source actions, activity states, persistence, and dismissal behavior. Local shell scripts can instead use easybar inbox to send, inspect, update, dismiss, remove, and clear messages through the control socket.

Context menu

Right-click the inbox anchor to change grouping, sorting, unread-count visibility, inactive styling, empty-state visibility, or source-action visibility. Each change is written to config.toml immediately while preserving comments, whitespace, and unrelated settings.