Skip to content

Panels ​

Each [[panels]] table describes one panel. Without any, glimpse shows the default panel along the top of every monitor. Writing [[panels]] tables replaces the default panel with yours, one panel per table. A setting you leave out of a table keeps its default, including the zones: a panel that sets only left still gets the default center and right applets. Set a zone to [] to empty it, and write panels = [] to have no panel at all.

Panels live in panel.toml, with [applets]. They are the one thing that does not merge across files: the last file with any [[panels]] table defines all of your panels, so a drop-in in panel.d/ cannot add a panel to the ones in panel.toml.

A panel has three zones, left, center and right. Each lists applet names in the order they appear. On a side panel left is the top end and right the bottom end. A name is either a built-in applet such as clock, a name you defined under [applets.<name>], or the id of an installed exec applet. The panel leaves out a name it can't resolve and tells you which one in a notification. A name with a dot, such as me.aresa.GlimpseTodo, is read as an exec applet id; if no such applet is installed, its slot stays empty without a notification.

toml
[[panels]]
position = "top"
size = 36
left = ["workspace-name", "pager", "places", "mpris"]
center = ["clock", "weather", "notifications", "privacy"]
right = ["tray", "bluetooth", "network", "audio", "power", "session"]

Settings ​

[[panels]]
centerlist of strings

Applet names for the middle of the panel.

Default
["clock", "weather", "notifications", "privacy"]
leftlist of strings

Applet names for the start of the panel: the left end, or the top on a side panel.

Default
["workspace-name", "pager", "places", "mpris"]
margintable

Space in pixels between the panel and the screen edges.

Its settings are listed under [panels.margin].

monitorstringnot set by default

The connector name of the one monitor this panel appears on, e.g. eDP-1. Unset puts a copy of the panel on every monitor.

positionone of default "top"

The screen edge the panel sits on.

  • "left"
  • "top"
  • "right"
  • "bottom"
rightlist of strings

Applet names for the end of the panel: the right end, or the bottom on a side panel.

Default
["next-event", "tray", "removable", "clipboard", "printing", "bluetooth", "network", "display", "audio", "idle", "power", "keyboard", "session"]
sizeinteger default 36

The panel's thickness in pixels: its height on a top or bottom edge, its width on a side.

[panels.margin]
bottominteger default 0

Pixels between the panel and the bottom screen edge.

leftinteger default 0

Pixels between the panel and the left screen edge.

rightinteger default 0

Pixels between the panel and the right screen edge.

topinteger default 0

Pixels between the panel and the top screen edge.

Several panels ​

Add a [[panels]] table for each panel. A [panels.margin] table belongs to the [[panels]] above it. This puts a full panel on the laptop screen and a smaller one on an external monitor:

toml
[[panels]]
monitor = "eDP-1"
left = ["workspace-name", "pager"]
center = ["clock"]
right = ["tray", "network", "audio", "power", "session"]

[[panels]]
monitor = "DP-1"
size = 30
left = ["pager"]
center = ["clock"]
right = ["notifications"]

monitor takes a connector name such as eDP-1 or DP-1, matched exactly. A panel whose monitor matches no connected monitor does not appear, and glimpse does not warn you. glimpsectl applet list lists every applet on screen with the connector its panel is on; while no panel shows, your compositor's own output list (for example niri msg outputs) gives the names.

Default panel ​

ZoneApplets
leftworkspace-name, pager, places, mpris
centerclock, weather, notifications, privacy
rightnext-event, tray, removable, clipboard, printing, bluetooth, network, display, audio, idle, power, keyboard, session

See the applet reference for what each one does.

Released under the BSD 3-Clause license.