{"id":35832858,"url":"https://github.com/prankstr/vibepanel","last_synced_at":"2026-05-03T07:06:24.275Z","repository":{"id":332413718,"uuid":"1121228209","full_name":"prankstr/vibepanel","owner":"prankstr","description":"GTK4 panel for Wayland with notifications, OSD, and quick settings – between a status bar and a desktop shell.","archived":false,"fork":false,"pushed_at":"2026-04-28T15:27:06.000Z","size":17064,"stargazers_count":91,"open_issues_count":6,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-28T17:23:42.275Z","etag":null,"topics":["bar","dwl","gtk","gtk4","hyprland","mangowc","niri","panel","rust","statusbar","sway","tiling-window-manager","wayland","wlroots"],"latest_commit_sha":null,"homepage":"https://github.com/prankstr/vibepanel/wiki","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prankstr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-22T16:33:51.000Z","updated_at":"2026-04-28T17:14:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae199d5a-eadf-4013-b4f6-e99f2df8c8f8","html_url":"https://github.com/prankstr/vibepanel","commit_stats":null,"previous_names":["prankstr/vibepanel"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/prankstr/vibepanel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prankstr%2Fvibepanel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prankstr%2Fvibepanel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prankstr%2Fvibepanel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prankstr%2Fvibepanel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prankstr","download_url":"https://codeload.github.com/prankstr/vibepanel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prankstr%2Fvibepanel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32560919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bar","dwl","gtk","gtk4","hyprland","mangowc","niri","panel","rust","statusbar","sway","tiling-window-manager","wayland","wlroots"],"created_at":"2026-01-07T23:13:09.538Z","updated_at":"2026-05-03T07:06:24.269Z","avatar_url":"https://github.com/prankstr.png","language":"Rust","funding_links":[],"categories":["Bars and Widgets"],"sub_categories":["Miscellaneous"],"readme":"# VibePanel\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/prankstr/vibepanel/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/prankstr/vibepanel?style=for-the-badge\u0026labelColor=101418\u0026color=adabe0\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/prankstr/vibepanel/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/prankstr/vibepanel?style=for-the-badge\u0026labelColor=101418\u0026color=adabe0\" alt=\"GitHub release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/vibepanel-bin\"\u003e\u003cimg src=\"https://img.shields.io/aur/version/vibepanel-bin?style=for-the-badge\u0026labelColor=101418\u0026color=adabe0\" alt=\"AUR version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/prankstr/vibepanel/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/prankstr/vibepanel?style=for-the-badge\u0026labelColor=101418\u0026color=adabe0\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"assets/screenshots/islands_bar_dark.png\" alt=\"VibePanel\" width=\"830\"\u003e\n\u003c/p\u003e\n\nA batteries-included Wayland panel that replaces your status bar, notification daemon and OSD with a single binary. Works out of the box with [Hyprland](https://github.com/hyprwm/Hyprland), [Niri](https://github.com/niri-wm/niri), [Sway](https://github.com/swaywm/sway), [MangoWC](https://github.com/mangowm/mango) and other compositors.\n\n## Why VibePanel?\n\nVibePanel is something between a simple status bar and a full desktop shell:\n\n- **Fast \u0026 native** – Single Rust binary with GTK4. Direct system integration, low resource usage.\n- **Batteries included** – VibePanel replaces several common components with a single binary:\n  - **Notifications** – Integrated notification center\n  - **OSD** – Built-in on-screen display for volume and brightness\n  - **Quick settings** – Native panel for Wi‑Fi, Bluetooth, audio, power profiles and more\n- **Minimal config** – Sensible defaults out of the box; customize with TOML, CSS only if needed.\n- **Modern aesthetics** – Defaults to a floating \"island\" design with instant hot‑reloading and features wallpaper adaptive theming that auto‑switches between light and dark.\n- **Integrated CLI** – Control volume, brightness, media playback, bar visibility, popovers and idle inhibition.\n\n## Demo\n\nThese examples use roughly ~10–35 lines of TOML to get completely different vibes, no CSS required.\n\n\u003chttps://github.com/user-attachments/assets/d7ed9674-1c32-436e-af1a-5ece72096816\u003e\n\n*A few example configurations*\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"assets/screenshots/gruvbox_desktop.png\"\u003e\u003cimg src=\"assets/screenshots/gruvbox_desktop.png\" width=\"270\"\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"assets/screenshots/frosted_minimal_desktop.png\"\u003e\u003cimg src=\"assets/screenshots/frosted_minimal_desktop.png\" width=\"270\"\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"assets/screenshots/sonoma_desktop.png\"\u003e\u003cimg src=\"assets/screenshots/sonoma_desktop.png\" width=\"270\"\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Widgets\n\n- **Quick settings**:\n  - **Audio** - Control volume and outputs\n  - **Brightness** - Adjust screen brightness\n  - **Bluetooth** - Manage and pair devices\n  - **Wi-Fi** - Connect to and manage networks\n  - **VPN** - Connect to NetworkManager-managed VPN connections\n  - **Idle Inhibitor** - Toggle idle inhibitor to prevent sleep\n- **Workspaces** - clickable indicators with tooltips\n- **Window title** - active window with app icon\n- **Keyboard layout** - layout indicator with click to cycle\n- **Clock** - configurable format with calendar popover\n- **Battery** - status with detailed popover and power profiles\n- **System tray** - XDG tray support\n- **Notifications** - notification center with Do Not Disturb\n- **Updates** - package update indicator (dnf, pacman/paru and flatpak support)\n- **CPU, Memory, GPU \u0026 Network Speed** - system resource monitors (AMD and NVIDIA GPU support)\n- **Media** - MPRIS media player controls with album art\n- **Custom** - user-defined widgets (scripts, buttons, indicators)\n- **Taskbar** - open windows as clickable buttons\n\n## Quickstart\n\n1. Install VibePanel:\n\n   **Arch Linux (AUR):**\n\n   ```sh\n   yay -S vibepanel-bin\n   ```\n\n   **Fedora (COPR):**\n\n   ```sh\n   sudo dnf copr enable prankstr/vibepanel\n   sudo dnf install vibepanel\n   ```\n\n   **Nix:**\n\n   ```sh\n   # Try it\n   nix run github:prankstr/vibepanel\n\n   # Install\n   nix profile install github:prankstr/vibepanel\n   ```\n\n   **Other distros:** Install [runtime dependencies](https://github.com/prankstr/vibepanel/wiki/Installation#runtime-dependencies), then:\n\n   ```sh\n   curl -LO https://github.com/prankstr/vibepanel/releases/latest/download/vibepanel-x86_64-unknown-linux-gnu\n   install -Dm755 vibepanel-x86_64-unknown-linux-gnu ~/.local/bin/vibepanel\n   ```\n\n   Or [build from source](https://github.com/prankstr/vibepanel/wiki/Installation#from-source).\n\n2. Run it:\n\n   ```sh\n   vibepanel\n   ```\n\nSee the [Installation wiki](https://github.com/prankstr/vibepanel/wiki/Installation) for more information.\n\n## Configuration\n\nVibePanel doesn't require a config file to run, but if you want to customize anything, create a config at `~/.config/vibepanel/config.toml`:\n\n```sh\nmkdir -p ~/.config/vibepanel\nvibepanel --print-example-config \u003e ~/.config/vibepanel/config.toml\n```\n\nHere's a minimal example:\n\n```toml\n[bar]\nsize = 32\n\n[widgets]\nleft = [\"workspaces\", \"window_title\"]\ncenter = [\"media\"]\nright = [\"quick_settings\", \"battery\", \"clock\", \"notifications\"]\n\n[theme]\nmode = \"dark\"\naccent = \"#adabe0\"\n```\n\nChanges hot-reload instantly. See the [Configuration wiki](https://github.com/prankstr/vibepanel/wiki/Configuration) for all options.\n\n## Status\n\nVibePanel is pre-1.0 and under active development.\nConfig options and defaults may change between minor releases, check the changelog when upgrading.\n\nI built the first version in Python but wanted to migrate to Rust for performance, portability and simply to learn Rust.\nThe porting took waay too long in a language I was still learning so I've written the code with a lot of AI assistance.\nI review all code and use VibePanel daily on multiple computers.\n\n### Compatibility\n\n- **Compositors:** [Hyprland](https://github.com/hyprwm/Hyprland), [Niri](https://github.com/niri-wm/niri), [Sway](https://github.com/swaywm/sway), [Miracle WM](https://github.com/miracle-wm-org/miracle-wm), [Scroll](https://github.com/dawsers/scroll) and other i3-IPC compatible compositors. [MangoWC](https://github.com/mangowm/mango)/[DWL](https://codeberg.org/dwl/dwl) via dwl-ipc.\n- **Updates widget:** dnf, pacman/paru and flatpak.\n\n## Documentation\n\nFull documentation lives in the [wiki](https://github.com/prankstr/vibepanel/wiki):\n\n- [Installation](https://github.com/prankstr/vibepanel/wiki/Installation) - Dependencies, building, auto-start\n- [Configuration](https://github.com/prankstr/vibepanel/wiki/Configuration) - All config options\n- [CLI](https://github.com/prankstr/vibepanel/wiki/CLI) - Command reference\n- [Widgets](https://github.com/prankstr/vibepanel/wiki/Widgets) - Widget reference and per-widget options\n- [Theming](https://github.com/prankstr/vibepanel/wiki/Theming) - Custom CSS styling\n- [CSS Variables](https://github.com/prankstr/vibepanel/wiki/CSS-Variables) - Full CSS variable reference\n\n## Contributing\n\n- Found a bug? [Open an issue](https://github.com/prankstr/vibepanel/issues)\n- Want a feature? [Request it](https://github.com/prankstr/vibepanel/issues)\n- Pull requests welcome\n\nIf you find VibePanel useful, consider giving it a star. It helps others discover the project.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprankstr%2Fvibepanel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprankstr%2Fvibepanel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprankstr%2Fvibepanel/lists"}