The Panes Wayland compositor
Find a file
2025-05-06 17:17:30 -04:00
cursor.png Initial progress, everything is broken 2025-05-06 17:15:00 -04:00
main.c Initial progress, everything is broken 2025-05-06 17:15:00 -04:00
panes Initial progress, everything is broken 2025-05-06 17:15:00 -04:00
panes_resized.jpg Upload files to "/" 2025-05-03 16:18:36 +00:00
README.md Update README.md 2025-05-04 01:49:31 +00:00

Panes Wayland Compositor

The repo for the Panes compositor, a key component of RetrofitOS. Note that Sills apps cannot work in other Wayland environments due to CS experiments being run on this compositor.

5/3/25

I'm going to be logging in the READMEs for now. I'll tell you the workflow: I'm using ChatGPT Plus in Zed to help me understand basic C and Wayland theory. Function tables and structs seem to be the way to get things done. Some may not like it, but this is the furthest I've gotten in quite awhile to something I've been wanting to do for awhile.

Design Goals

This is more of a UI design project, but due to the narrowing knowledge gap in compositor building, I'm able to make something real-world. Sills apps will not be usable outside of Panes due to Panes-specific hooks baked into the compositor. It's Wayland, but so far most Wayland compositors have been cookie-cutter clones of each other. See the hostility between GNOME and COSMIC, which look very similar despite how different they are under the hood.

I could have chosen Rust, but I don't have the patience. System76 has a whole dedicated team working on COSMIC and they can't get something usable out the door.

I'm developing what I call the "SmartHUD", which apps will call into to take full advantage of the 16:9 and higher resolutions we have today. The SmartHUD is context-aware and has a set of widgets in Sills entirely dedicated to it for this reason. The SmartHUD is built into the compositor, so the Panes compositor does more than most others. However, due to the fact that both Sills and Panes use Skia, it should ease the technical burden when all your drawing has the same lineage. Wlroots will be used at the start, however it will probably be re-written in the future.

Today, I'd like to get a basic compositor committed. When programming, I plan to drop down to raw Wayland whenever possible, I feel it's more efficient this way.