Vibepanel
GTK4 panel for Wayland with notifications, OSD, and quick settings – between a status bar and a desktop shell.
Install / Use
/learn @prankstr/VibepanelREADME
VibePanel
<p align="center"> <img src="assets/screenshots/islands_bar_light.png" alt="VibePanel bar preview" width="830"> </p>A GTK4 panel for Wayland with built-in notifications, OSD, and quick settings in a single binary. Supports Hyprland, Niri, Sway, MangoWC and more.
Why VibePanel?
VibePanel is something between a simple status bar and a full desktop shell:
- Minimal config – Sensible defaults out of the box; customize with TOML, CSS only if needed.
- Batteries included – VibePanel replaces several common components with a single binary:
- Notifications – Integrated notification center
- OSD – Built-in on-screen display for volume and brightness
- Quick settings – Native panel for Wi‑Fi, Bluetooth, audio, power profiles and more
- Modern aesthetics – Defaults to a floating "island" style with instant hot‑reloading for layouts and themes.
- Integrated CLI – Small CLI for controlling volume, brightness, media controls and idle inhibition.
- Center anchoring – Custom GTK4 layout keeps center widgets centered even when left/right sections grow.
Demo
These examples use roughly ~10–35 lines of TOML to get completely different vibes, no CSS required.
https://github.com/user-attachments/assets/d7ed9674-1c32-436e-af1a-5ece72096816
A few example configurations
<table align="center"> <tr> <td><a href="assets/screenshots/gruvbox_desktop.png"><img src="assets/screenshots/gruvbox_desktop.png" width="270"></a></td> <td><a href="assets/screenshots/frosted_minimal_desktop.png"><img src="assets/screenshots/frosted_minimal_desktop.png" width="270"></a></td> <td><a href="assets/screenshots/sonoma_desktop.png"><img src="assets/screenshots/sonoma_desktop.png" width="270"></a></td> </tr> </table>Widgets
- Workspaces - clickable indicators with tooltips
- Window title - active window with app icon
- Clock - configurable format with calendar popover
- Battery - status with detailed popover and power profiles
- System tray - XDG tray support
- Notifications - notification center with Do Not Disturb
- Updates - package update indicator (dnf, pacman/paru, and flatpak support)
- CPU & Memory - system resource monitors
- Media - MPRIS media player controls with album art
- Quick settings:
- Audio - Control volume and outputs
- Brightness - Adjust screen brightness
- Bluetooth - Manage and pair devices
- Wi-Fi - Connect to and manage networks
- VPN - Connect to NetworkManager-managed VPN connections
- Idle Inhibitor - Toggle idle inhibitor to prevent sleep
Quickstart
-
Install VibePanel:
Arch Linux (AUR):
yay -S vibepanel-binFedora (COPR):
sudo dnf copr enable prankstr/vibepanel sudo dnf install vibepanelNix:
# Try it nix run github:prankstr/vibepanel # Install nix profile install github:prankstr/vibepanelOther distros: Install runtime dependencies, then:
curl -LO https://github.com/prankstr/vibepanel/releases/latest/download/vibepanel-x86_64-unknown-linux-gnu install -Dm755 vibepanel-x86_64-unknown-linux-gnu ~/.local/bin/vibepanel -
Run it:
vibepanel
See the Installation wiki for more information.
Configuration
VibePanel doesn't require a config file to run, but if you want to customize anything, create a config at ~/.config/vibepanel/config.toml:
touch ~/.config/vibepanel/config.toml
# or generate an example config
vibepanel --print-example-config > ~/.config/vibepanel/config.toml
Here's a minimal example:
[bar]
size = 32
[widgets]
left = ["workspaces", "window_title"]
center = ["media"]
right = ["quick_settings", "battery", "clock", "notifications"]
[theme]
mode = "dark"
accent = "#adabe0"
Changes hot-reload instantly. See the Configuration wiki for all options.
Status
VibePanel is in early 0.x development but should be stable enough for daily use. Config options and defaults may change between minor releases, check the changelog when upgrading.
The idea and architecture behind the panel is something I first built in Python. For performance, portability and curiosity reasons I wanted to migrate to Rust. I started doing it myself but realized it would take far too long in a language I'm still learning. So this codebase is largely written by AI but a lot of effort has gone into making sure it's not slop and I use VibePanel daily on multiple computers.
If you find a bug or if you're missing a feature, please open an issue!
Compatibility
- Compositors: Hyprland, Niri, Sway, Miracle WM, Scroll, and other i3-IPC compatible compositors. MangoWC/DWL via dwl-ipc.
- Updates widget: dnf, pacman/paru, and flatpak.
Documentation
Full documentation lives in the wiki:
- Installation - Dependencies, building, auto-start
- Configuration - All config options
- Widgets - Widget reference and per-widget options
- Theming - Custom CSS styling
- CSS Variables - Full CSS variable reference
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
MIT
Related Skills
himalaya
337.7kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
337.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
337.7kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
