Skip to content

prankstr/vibepanel

Repository files navigation

VibePanel

VibePanel bar preview

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.

vibepanel.mp4

A few example configurations

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

  1. Install VibePanel:

    Arch Linux (AUR):

    yay -S vibepanel-bin

    Fedora (COPR):

    sudo dnf copr enable prankstr/vibepanel
    sudo dnf install vibepanel

    Nix:

    # Try it
    nix run github:prankstr/vibepanel
    
    # Install
    nix profile install github:prankstr/vibepanel

    Other 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

    Or build from source.

  2. 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

Documentation

Full documentation lives in the wiki:

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

License

MIT

About

GTK4 panel for Wayland with notifications, OSD, and quick settings – between a status bar and a desktop shell.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages