zwpanel

Lightweight Wayland panel

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 dbusmenu menus for tray items

  • Icon lookup: freedesktop icon theme resolution with PNG and SVG rasterization, plus .desktop file lookup for app icons

  • Layout: 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

OptionDefaultEffect
ENABLE_DBUSONSystem tray + dbusmenu support (needs libdbus)
ENABLE_PNGONPNG icon decoding (needs libpng)
ENABLE_SVGONSVG 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


© 2026 Zariep's portfolio

Powered by Tessera for Hugo