zwpanel
Lightweight pure wayland (+fcft +pixman +libpng +nanosvg) panel, built on wlr-layer-shell
Features
Modules:
- clock
- launcher
- separator
- expander
- command (async shell output),
- focused window
- taskmanager (foreign-toplevel)
- workspaces (ext-workspace)
- system tray (StatusNotifierItem)
Popup menus: static TOML-defined menus and live
dbusmenumenus for tray itemsIcon lookup: freedesktop icon theme resolution with PNG and SVG rasterization, plus
.desktopfile lookup for app iconsLayout: horizontal or vertical panel, autohide, per-module rotation, flexible/expander space allocation
Config-driven: single TOML file controls appearance, modules, and per-module behavior (see CONFIG.md)
Dependencies
- CMake
- wayland-client
- wlr-layer-shell protocol (bundled generated sources)
- fcft (font loading/rasterization)
- pixman (2D compositing)
- tomlc17 (bundled in
lib/tomlc17) - Optional,
ENABLE_DBUS=ON(default): libdbus: required for the system tray and dbusmenu - Optional,
ENABLE_PNG=ON(default): libpng: PNG icon decoding - Optional,
ENABLE_SVG=ON(default): NanoSVG: SVG icon rasterization
git clone --recursive https://codeberg.org/ItsZariep/zwpanel
cd zwpanel
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
Build options
| Option | Default | Effect |
|---|---|---|
ENABLE_DBUS | ON | System tray + dbusmenu support (needs libdbus) |
ENABLE_PNG | ON | PNG icon decoding (needs libpng) |
ENABLE_SVG | ON | SVG icon rasterization (needs NanoSVG) |
Disable a feature at configure time, e.g.:
cmake -B build -DENABLE_DBUS=OFF -DENABLE_SVG=OFF
cmake --build build
Check what a built binary was compiled with:
./build/zwpanel --version
Configuration
Full configuration reference (panel appearance, modules, actions, menus) lives in CONFIG.md.
Command-line usage
zwpanel --config <path> Use a specific config file
zwpanel --version Print version and enabled features
zwpanel --help Show usage and default config path
Default config path: $HOME/.config/zwpanel/config.toml

