1
0
Fork
You've already forked gaypanel
0
A panel for Wayland compositors
  • Rust 93.3%
  • CSS 3.4%
  • Nix 3.3%
2026年05月19日 13:15:31 -07:00
nix Add Nix flake 2026年05月19日 13:15:31 -07:00
resources I AM STUPID I FORGOT WE DON'T NEED THIS ANYMORE 2026年05月17日 19:45:32 -07:00
src Automatically collapse power menu 2026年05月17日 19:49:33 -07:00
.gitignore Initial commit 2026年03月09日 22:32:13 -07:00
Cargo.lock Safely handle nonexisting SourceIDs 2026年05月15日 16:07:38 -07:00
Cargo.toml Update dependencies 2026年04月26日 17:33:01 -07:00
CONTRIBUTING.md Actually specify contributing guidelines/license/CoC 2026年05月13日 18:07:58 -07:00
flake.lock Add Nix flake 2026年05月19日 13:15:31 -07:00
flake.nix Add Nix flake 2026年05月19日 13:15:31 -07:00
LICENSE Actually specify contributing guidelines/license/CoC 2026年05月13日 18:07:58 -07:00
README.md Update README.md 2026年05月17日 00:01:33 +02:00

gaypanel

(Share your configs! I'd be happy to put up screenshots of them here.)

gtk + wayland + panel. gaypanel.

A panel for Wayland compositors.

What is this?

This is a opinionated panel for Wayland compositors using layer-shell, made up of widgets inspired from GNOME Shell, ashell, Quickshell configs, and everything I've been using up to this point. It's lightweight, and you can configure pretty much everything with CSS and GTK's Blueprint format (see the wiki for more). gaypanel contains a few opinionated widgets with dropdowns, which in other words, is like a bar plus like half of a kitchen sink for a full shell.

Why?

I saw that Quickshell was taking up too much RAM for my liking (and developing something with it was just as hard as developing this), and that Waybar was filled with AI slop. And also pretty much every other panel was filled with it too. Terrible! I forked Waybar out of spite and called it Gaybar, heh. But the source code sucked. I didn't wanna maintain that. Plus Waybar crashed all the time, yikes.

So I said "Fine, I'll drop my other projects to work on this". It didn't take too long!!

Note

I think enough people have seen this and said "ew, it looks like GNOME" that I should probably say that it just uses GTK and its default configruation looks similar! It's intended to be highly configurable and themable by letting people mess with each bar's template file and stylesheet. If you do manage to make your config look different from the examples above, feel free to send a screenshot! I'd love to feature it!!

This looks cool, I want it

Ok! So! You're gonna need the following:

  • NetworkManager
  • ALSA -- alsa-sys for building, if you have pipewire install pw-alsa
  • bluez
  • gtk4-layer-shell
  • gtk4
  • blueprint-compiler
  • libadwaita
  • Rust
  • Adwaita icon theme (ex. https://archlinux.org/packages/extra/any/adwaita-icon-theme/), as a fallback for missing icons
  • Optional: power-profiles-daemon or something else that provides power profiles like tuned-ppd or tlp-ppd
  • Optional: Niri (for the Niri workspaces widget)

Or, on Alpine Linux:

doas apk add gtk4-layer-shell-dev gtk4.0-dev blueprint-compiler libadwaita-dev alsa-lib-dev

Installing!

You can install gaypanel from the AUR - the package name is gaypanel-git - or from crates.io with cargo install gaypanel.

To have a complete shell, you'll need to install an application launcher like fuzzel, screen locker like gtklock or swaylock, and notification daemon, like swaync or mako. For the power button to work, you'll want to install a program like wleave for it to call. You can change the command it runs when you click on it, but that's what I recommend.

Building

With all of these installed and the repository cloned, you can run cargo run --release to run it or cargo build --release to build it.

How do I do $THING

There's a wiki! Check it out documentation waow https://codeberg.org/pastthepixels/gaypanel/wiki

If you have any questions feel free to reach out at spike@potatoe.ca by email.1

I wanna contribute!

Thanks for contributing!! The two main ways you can help out are by creating issues (feature requests/bug reports...) and PRs. Take a look at CONTRIBUTING.md for more...

TODO:

0.2

  • MPRIS widget
  • Window name widget (use wlroots spec)
  • wlroots workspaces widget
  • get the mic indicator to only show when it's being used (bwaa i guess i need pipewire for that... or polling wpctl)

Disclaimer

By using or contributing to this software, you agree that trans rights are human rights, ACAB, and that hate has no place here.


  1. I used to have a Fediverse handle on here, but due to the Horrors of the internet I have decided to shut down my fediverse instance for a while. I actually respond to my emails! You can also go look here under the Contact section for more ways to contact me ↩︎