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 matchheight = 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 globalheight = 28[monitor.widget.title]background = "#2e3440" # give the title a pill on this output onlyEvery 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.