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.
| Setting | Type | Default | Description |
|---|---|---|---|
colorize_icons | bool | false | Tint application icons in the bar and drawer with the shared shell.app_icon_color; symbolic icons retain their widget color. |
hidden | array of string | [] | Tray items to hide by id/name/bus/path token |
pinned | array of string | [] | Tray items that always stay visible in the bar when drawer = true |
hide_passive | bool | true | Hide items whose StatusNotifierItem status is Passive; set to false for applications that always report Passive |
match_adjacent_spacing | bool | false | Widen inline tray icon gaps to match the visual spacing of neighboring bar widgets (adds capsule padding on top of widget_spacing) |
drawer | bool | false | Replace inline tray icons with a tray button that opens a tray drawer panel |
glyph | string | "" | Custom drawer or peek glyph; empty selects a chevron pointing toward the drawer or peek reveal |
glyph_position | string | "before" | Place the drawer button or peek glyph "before" or "after" the tray icons; available with drawer = true or peek = true |
peek | bool | false | Show a tray glyph and reveal inline icons on hover; only available with drawer = false. See Peek |
peek_delay_ms | int | 100 | Hover time before inline icons reveal, from 0 to 2000 ms |
drawer_columns | number | 3 | Number of tray icons per row in the drawer panel (1 to 5) |
drawer_item_size | number | inherit | Size of tray icons inside the drawer panel in pixels (8 to 64) |
drawer_background_opacity | number | inherit | Background opacity of the floating drawer panel when detached_panel = true (0.0 to 1.0); defaults to the panel transparency mode |
detached_panel | bool | false | Open the drawer as a floating panel instead of anchoring it to the bar edge. |
icon_override_blacklist | array 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_type | string | default | Show 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 = falsehidden = ["nm-applet", "blueman", "org.kde.StatusNotifierItem-1-1"]pinned = ["nm-applet"]hide_passive = truedrawer = trueglyph_position = "before"drawer_columns = 3drawer_item_size = 20drawer_background_opacity = 0.85detached_panel = falseicon_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.