Skip to content

tray

System tray (StatusNotifierItem). Set colorize_icons = true to tint tray application icons with [shell].app_icon_color (see Shell → App icon colorization); colorize_icons does not recolor symbolic tray icons. Symbolic/monochrome tray glyphs, the drawer chevron, and letter fallbacks follow the widget’s color / icon_color (items needing attention stay in the error color).

The drawer inherits the settings of the tray widget that opened it, including colorize_icons, even when that widget has a custom config name. Opening the drawer through IPC without a widget context uses [widget.tray]. Status overlay badges retain their original colors.

With peek = true and drawer = false, the bar shows a glyph; hovering reveals the inline tray icons. glyph_position places the drawer button or peek glyph before or after the icons (above or below them on vertical bars). Peek is ignored and hidden in Settings when drawer mode is enabled. The drawer panel always shows its icons without peek. An empty tray stays hidden.

Leave glyph = "" for an automatic chevron: in drawer mode it points down on a top bar, up on a bottom bar, right on a left bar, and left on a right bar, whether the drawer is open or closed. In peek mode it points toward the icons’ reveal direction: right or down with glyph_position = "before", left or up with "after". Set glyph to a custom glyph name to override the chevron in either mode. The glyph picker appears when drawer mode or peek is enabled.

When Noctalia restarts, running applications can re-register their tray icons. Noctalia also discovers existing StatusNotifierItem services. Icons may take a few seconds to reappear while startup is busy.

When an application registers only its D-Bus service name, Noctalia ignores tray paths that return no StatusNotifierItem properties. This prevents unused paths from creating blank duplicate icons. Applications with multiple valid tray items can still show multiple icons.

Noctalia uses an existing org.kde.StatusNotifierWatcher when one is running. If that watcher exits, Noctalia takes over the watcher name and rediscovers tray items.

For theme icons in status or panel directories, the tray selects SVG artwork for the displayed logical size across all roots of the first matching theme. Application icons and bitmap icons keep their normal lookup. An inherited theme cannot replace an icon already supplied by a higher-priority theme.

SettingTypeDefaultDescription
colorize_iconsboolfalseTint application icons in the bar and drawer with the shared shell.app_icon_color; symbolic icons retain their widget color.
hiddenarray of string[]Tray items to hide by id/name/bus/path token
pinnedarray of string[]Tray items that always stay visible in the bar when drawer = true
hide_passivebooltrueHide items whose StatusNotifierItem status is Passive; set to false for applications that always report Passive
match_adjacent_spacingboolfalseWiden inline tray icon gaps to match the visual spacing of neighboring bar widgets (adds capsule padding on top of widget_spacing)
drawerboolfalseReplace inline tray icons with a tray button that opens a tray drawer panel
glyphstring""Custom drawer or peek glyph; empty selects a chevron pointing toward the drawer or peek reveal
glyph_positionstring"before"Place the drawer button or peek glyph "before" or "after" the tray icons; available with drawer = true or peek = true
peekboolfalseShow a tray glyph and reveal inline icons on hover; only available with drawer = false. See Peek
peek_delay_msint100Hover time before inline icons reveal, from 0 to 2000 ms
drawer_columnsnumber3Number of tray icons per row in the drawer panel (1 to 5)
drawer_item_sizenumberinheritSize of tray icons inside the drawer panel in pixels (8 to 64)
drawer_background_opacitynumberinheritBackground opacity of the floating drawer panel when detached_panel = true (0.0 to 1.0); defaults to the panel transparency mode
detached_panelboolfalseOpen the drawer as a floating panel instead of anchoring it to the bar edge.
icon_override_blacklistarray of string[]Tray items to exclude from icon_type replacement by id/name/bus/path token; matching items keep their normal icon and attention.
icon_typestringdefaultShow app-provided tray icons (default), desktop entry icons (desktop), or their symbolic variants (symbolic). Matched items no longer show attention or status variants; unmatched or blacklisted items keep their normal icon.
[widget.tray]
colorize_icons = false
hidden = ["nm-applet", "blueman", "org.kde.StatusNotifierItem-1-1"]
pinned = ["nm-applet"]
hide_passive = true
drawer = true
glyph_position = "before"
drawer_columns = 3
drawer_item_size = 20
drawer_background_opacity = 0.85
detached_panel = false
icon_override_blacklist = [ "blueman", "signal" ]
icon_type = "symbolic"

Tip: right-click a tray item and use Pin / Unpin in the item menu to update pinned without editing config manually.