Skip to content

Widgets

Modules are placed in the modules-left, modules-center and modules-right zones. The defaults are workspaces (left), title (center) and clock, battery, system, network, power-profiles-daemon (right). Everything else is opt-in: add its name to a zone.

Module Source Notes
workspaces Hyprland IPC Active workspace bracketed and accented. Click a workspace to switch to it.
title Hyprland IPC Active window title on this bar’s monitor. Truncated with … at 100 characters by default.
clock Wall-clock timer Live HH:MM. Supports on-click / on-click-right.
battery UPower Percentage and charge state; blank when no battery is present. Hover shows the time to empty or full.
system procfs CPU and memory load. Hover shows memory used over total in GiB.
network NetworkManager (DBus) The Wi-Fi icon follows signal strength; hover shows SSID and signal. Supports on-click / on-click-right.
power-profiles-daemon power-profiles-daemon (DBus) Left-click rotates forward through profiles, right-click backward. Hides when no source is available.
Module Source Notes
tray StatusNotifierItem (DBus) Left-click activates; right-click opens the native DBusMenu. tablero hosts its own watcher under Hyprland.
bluetooth BlueZ (DBus) Off, on or connected icon plus the device count; hover lists connected devices.
volume PipeWire N%, or only the muted icon; the speaker gains waves with the level. Reconnects if PipeWire restarts.
backlight sysfs + udev Scroll to adjust brightness through systemd-logind, no brightnessctl needed.
notifications swaync (DBus) Bell with a dot while notifications are pending. Left-click toggles the panel, right-click toggles Do-Not-Disturb.
updates checkupdates + paru -Qua Pending Arch updates, checked every 5 minutes. Hides when the total is zero.
hypridle procfs Lock glyph shows whether Hypridle runs; left-click starts or stops it.
power — Power glyph with configurable on-click / on-click-right, e.g. wlogout and hyprlock.

Widgets whose source is missing (no PipeWire, no swaync, no backlight) reserve no slot and come back automatically when the source appears.

Status widgets keep the pill compact and move details into a hover tooltip. Each takes a format for the pill and a tooltip-format for the tooltip, with the same placeholders; tooltip = false turns the tooltip off. Unknown placeholders and unbalanced braces are rejected at load.

Widget Placeholders format-icons
battery {icon} {percent} {state} {time} —
bluetooth {icon} {count} {state} table: on, off, connected
network {icon} {ssid} {signal} {state} ramp, or { levels = [..], disconnected, wired, unknown }
system {icon} {cpu} {mem} —
volume {icon} {percent} {device} ramp, or { levels = [..], muted }

A ramp lists icons from low to high; Wi-Fi picks from it by signal strength.

[widget.volume]
format = "{icon}{percent}%"
format-icons = { levels = ["󰕿", "󰖀", "󰕾"], muted = "󰝟" }
[widget.network]
format = "{icon}"
format-icons = { levels = ["󰤟", "󰤢", "󰤥", "󰤨"], disconnected = "󰤭" }
tooltip-format = "{ssid} ({signal}%)"
icon-size = 20
[widget.bluetooth]
format = "{icon}{count}"
format-icons = { on = "󰂯", off = "󰂲", connected = "󰂱" }
[widget.battery]
tooltip-format = "{percent}% {state}, {time} left"

Requires checkupdates from pacman-contrib. paru is optional; when available, its AUR count is added.

Terminal window
sudo pacman -S --needed pacman-contrib
[bar]
modules-right = ["updates", "clock"]
[widget.updates]
format = "{icon} {count}"
# on-click = "/path/to/update-system"

Only {count} and {icon} are accepted in format. A missing or failed paru falls back to official updates; a missing or failed checkupdates hides the module. Hovering lists each package’s installed and available versions.

[bar]
modules-right = ["backlight", "battery", "network"]
[widget.backlight]
device = "intel_backlight" # optional; auto-selects the largest range when absent
format = "{icon} {percent}%"
scroll-step = 1

Only {icon} and {percent} are accepted in format; format-icons lists glyphs from low to high brightness. Scrolling requires an active systemd-logind session, and follows the fingers under touchpad natural scrolling.

[widget.power-profiles-daemon]
format = "{icon}"
tooltip-format = "Power profile: {profile}\nDriver: {driver}"
tooltip = true

Both format and tooltip-format accept {icon}, {profile}, {driver}, {cpu_driver}, {platform_driver} and {hardware}. The module talks directly to the system D-Bus API and never spawns powerprofilesctl.

On machines exposing the qc71_laptop sysfs (Slimbook EVO and compatibles), the widget also reads the hardware performance mode, and applies TDP/fan changes when the privileged helper is installed:

Terminal window
sudo install -m 0755 contrib/qc71/tablero-qc71-set-mode /usr/local/bin/tablero-qc71-set-mode
sudo install -m 0644 contrib/qc71/org.pinya.tablero.qc71.policy \
/usr/share/polkit-1/actions/org.pinya.tablero.qc71.policy

The bar never writes sysfs itself. Set hardware-control = false to force the PPD-only path.

Only three modules poll; everything else is event-driven. interval is in whole seconds (1–86400) and needs a restart to change:

[widget.system]
interval = 3 # CPU and memory sample
[widget.updates]
interval = 300 # checkupdates / paru run
[widget.hypridle]
interval = 10 # scan for a hypridle started outside the bar