Skip to content

erffy/zig-waybar-contrib

Repository files navigation

Important

This repository has been migrated to codeberg.org.
This repository is not mirrored and will no longer be updated here.

Seeing Zig move its codebase to Codeberg was a wake-up call. It made me question why I was still hosting my project on Microsoft-owned infrastructure when genuinely open, community-driven platforms exist. Codeberg aligns far better with the values of free software, transparency, and community ownership—and that’s where this project belongs.

zig-waybar-contrib License Stars Issues Last Commit

High-performance Waybar modules written in Zig for efficient system monitoring

Overview

zig-waybar-contrib is a collection of lightweight, blazingly fast Waybar modules built with Zig. These modules are designed to provide accurate system monitoring with minimal resource usage, taking advantage of Zig's performance characteristics and memory safety.

Key Features:

  • 🚀 High Performance: Native binaries with minimal overhead.
  • 🛡️ Memory Safe: Built with Zig's safety features.
  • 🧩 Drop-in Replacement: Compatible with Waybar's custom module interface.

Modules

Module Description
CPU Displays per-core CPU usage
Fan Monitors fan speeds
GPU Monitors GPU stats
Memory Reports RAM usage and statistics
Network Tracks network status
Ping Measures network latency
Updates Tracks system package updates

See MODULES for detailed documentation on each module.

Installation

Repology Repology

Quick Installation (AUR)

You can easily install the latest version from the AUR.

# Using paru
paru -S zig-waybar-contrib

# Using yay
yay -S zig-waybar-contrib

Note

To try the beta versions, run install.sh.
On Arch Linux, you can alternatively install the zig-waybar-contrib-beta-bin package from the AUR

Script Installation

Note

This script doesn't need root permissions.

The installation script automates cloning, building, and installing.

bash -c "$(curl -fsSL https://codeberg.org/erffy/zig-waybar-contrib/raw/branch/0.16-dev/install.sh)"

This script installs into your $HOME directory ($HOME/.zig-waybar-contrib) and places its binaries in $HOME/.local/bin.

Manual Build (From Source)

To build from source, you need Zig installed (check build.zig for version requirements).

git clone https://codeberg.org/erffy/zig-waybar-contrib.git
cd zig-waybar-contrib
zig build -Doptimize=ReleaseFast

Tip

The build system automatically detects available libraries and package managers. If dependencies for gpu or updates modules are missing, those modules might be skipped.

Binaries will be available in zig-out/bin/.

Configuration

Add the modules to your Waybar configuration. You can include the provided config file or define modules manually.

Method 1: Include Config

{
  // Load module configurations from zig-waybar-contrib
  "include": [
    "/usr/share/zig-waybar-contrib/config.jsonc", // if you installed from aur
    "~/.zig-waybar-contrib/config.waybar.jsonc" // if you installed with script
  ],

  "modules-right": [
    "custom/updates",
    "custom/gpu",
    "custom/memory",
    "custom/ping",
    "custom/cpu",
    "custom/network"
  ]
}

Method 2: Manual Definition

See config.waybar.jsonc for the default configuration values.

Contributing

See CONTRIBUTING

Acknowledgments

  • Zig Team - For creating an amazing systems programming language
  • Waybar Contributors - For the excellent status bar that makes this possible
  • Community - For feedback, bug reports, and contributions

Made with ❤️ by Me

Star ⭐ this repo if you find it useful!

This project is licensed under the GNU General Public License v3.0. See LICENSE for details.