Skip to content

Per-monitor overrides

tablero shows one bar per output. By default every output uses the global settings; add a [[monitor]] block to override one, matched by its Hyprland connector name (hyprctl monitors lists them: DP-1, HDMI-A-1, eDP-1, …).

[[monitor]]
name = "DP-1" # required: the connector to match
height = 40 # override just this output's height
[monitor.bar]
modules-center = ["clock"] # replace just this output's center zone
[monitor.theme]
accent = "#88c0d0" # only the accent changes; background/foreground inherit
[monitor.font]
size = 18.0 # larger text on this monitor only
[[monitor]]
name = "eDP-1" # the laptop panel: shorter bar, everything else global
height = 28
[monitor.widget.title]
background = "#2e3440" # give the title a pill on this output only

Every field except name is optional, and overrides are shallow per field. Within [monitor.theme] and [monitor.font], an omitted channel inherits the global value rather than resetting to the built-in default. Outputs that match no block run on the global settings.

Key Type Notes
monitor.name string Required. Hyprland connector name to match.
monitor.height integer (px) Overrides height on this output.
monitor.bar.background hex color (opt.) Overrides the bar fill.
monitor.bar.margin integer (px) Overrides the module-row inset.
monitor.bar.gap integer (px) Overrides the inter-module gap.
monitor.bar.modules-* list of strings Replaces the named module zone.
monitor.theme.* hex color Per-channel theme override.
monitor.font.* family / size Per-field font override.
monitor.widget.* per-widget table Folded per-field onto the global [widget.<name>] table.

Polling interval values have no per-monitor form: one producer feeds every output.