Important
This project is in active development. As I'm learning Zig, updates may take time. Your contributions, feedback, and patience are greatly appreciated! 🚀
High-performance Waybar modules written in Zig for efficient system monitoring
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.
- Zero-cost abstractions - Runtime performance without sacrificing code clarity
- Compile-time safety - Catch errors before they reach production
- Small binaries - Minimal overhead for system monitoring
- Fast compilation - Quick iteration during development
- ⚡ Ultra-fast execution - Optimized with
ReleaseFast
+ LTO + LLVM - 🔒 Memory safe - No buffer overflows or memory leaks
- 🧩 Modular design - Include only what you need
- 📊 Real-time data - Accurate, up-to-date system metrics
- 🎯 Waybar native - JSON output format, seamless integration
- 🪶 Lightweight - Minimal system dependencies
All modules output single-line JSON compatible with Waybar's custom
module interface.
Module | Description | Status | Dependencies | Platforms | Signal |
---|---|---|---|---|---|
Updates | System package update tracker | ✅ Ready | fakeroot |
Arch Linux | 2 |
GPU | GPU usage, temperature, memory | ✅ Ready | None | AMD RX Series | 5 |
Memory | RAM usage and statistics | ✅ Ready | None | Linux | 4 |
Ping | Network latency monitoring | ✅ Ready | None | Linux | None |
Network | Network speed monitoring | Linux | 3 |
- Note: This project will be packaged for Pacman and submitted to the AUR in a future releases.
Download pre-compiled binaries from GitHub Releases:
Requirements:
- Zig: 0.14.0+
- Git
# Clone the repository
git clone https://github.com/erffy/zig-waybar-contrib.git && cd zig-waybar-contrib
# Build all modules
zig build
# Install to system
sudo cp zig-out/bin/* /usr/local/bin/
Add to your Waybar configuration (~/.config/waybar/config.jsonc
):
zig-waybar-contrib/
├── src/
│ ├── updates.zig # Updates module
│ ├── gpu.zig # GPU module
│ ├── memory.zig # Memory module
│ ├── network.zig # Network module
│ └── ping.zig # Ping module
├── build.zig # Build configuration
└── assets/ # Screenshots
Contributions are welcome! Here's how you can help:
- 🐛 Bug Fixes - Help squash issues
- ⚡ Performance Improvements - Make modules even faster
- 🧩 New Modules - Add support for more system metrics
- 🎨 Code Quality - Improve readability and maintainability
- 📖 Documentation - Improve guides and examples
- 🧪 Testing - Report bugs and compatibility issues
- 💡 Feature Requests - Suggest new modules or improvements
- 🎨 Themes - Share your Waybar styling configs
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-module
- Make your changes and test thoroughly
- Follow Zig style conventions:
zig fmt src/
- Add tests if applicable
- Submit a pull request with a clear description
- Implement Environment-based configuration
- Implement Network speed monitoring
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.
- 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!