xerotop

a battery-conscious system monitor for wayland. 

A vertical xerotop bar: clock with power/lock icons, CPU/MEM/GPU/DISK/NET graphs, a sensors block (CPU/GPU/SSD temps + fan RPM), uptime with load averages, weather, keyboard LEDs, volume and brightness meters, a top-processes list, the window taskbar and the system tray.

A gkrellm-style system monitor for Wayland (wlroots / layer-shell), in Rust + GTK4. A vertical (or horizontal) stack of live meters — CPU & per-core, memory, GPU, disk, network, temps/fans, battery, volume, brightness, top processes, uptime, keyboard LEDs, weather, mail — plus a real taskbar and system tray, all in one process with zero subprocesses.

It's the successor to an ewwii-based bar that spawned ~600 shell processes per second to poll metrics. xerotop reads /proc, /sys, ALSA and statvfs natively and redraws only when new data arrives.

design principles

what's in it

build & run

# needs GTK4, gtk4-layer-shell, and a wlroots compositor (labwc, sway, …)
cargo build --release
./target/release/xerotop

Pinned to gtk4-rs 0.10, so it builds on Rust 1.89 and up (current stable too).

configure

right-click the bar (or --prefs) and use the live GUI — pick a panel, configure it, applies instantly:

xerotop Panels preferences: a master list of panels on the left, the selected panel's options (here the header's clock formats, icon slots and power-menu commands) on the right.

first run also writes ~/.config/xerotop/config.toml — the same settings as plain TOML:

theme = "default"

[bar]
edge = "right"      # left | right | top | bottom
thickness = 150     # px
length = "full"     # "full" or a pixel count
opacity = 0.88

[[panel]]
type = "cpu"
interval = 2
graph = true