Hello everyone,
I wanted to share with you (once more) the release of Louvre v2.0.0 (C++ library for building Wayland compositors) #linux .
Highlights of the new features:
- Screencasting: Now compatible with PipeWire via xdg-desktop-portal-wlr.
- Session Lock Protocol: Allows for the display of login windows.
- Layer Shell Protocol: For wallpapers, panels, notifications, etc.
- New Input Events API: Enhanced with support for touch events, pointer gestures, and pointer constraints.
If there’s any protocol or functionality you would like to see added, please feel free to suggest it or contribute to its development!
This looks awesome.
Looks like it could be a very good alternative to mutter and kwin.
Questions:
Thank you :)
Yes, I believe I could create a renderer using Vulkan without much difficulty. Initially, I chose GLES2 for compatibility reasons.
Yes, only the decorations with macOS style.
Well, that’s a compositor (which uses COMO) and Louvre is a library, so sure, I could collaborate with COMO.
Cuarzo Software is just a name I use to release my open source projects, it’s not a real company. Everyone is welcome to suggest ideas or contribute to the development of these projects, and I genuinely appreciate that.
If time allows me, of course.
Absolutely, you’re free to build a compositor however you like, whether it’s in 2D, 3D, or any other style. Essentially, it’s akin to creating a game, with window applications acting as textures.
Those are compositors and Louvre is just a library, so I don’t know how to compare them. As you noticed, the compositor in the video is just one of the examples I made with Louvre.
If we are talking ideas, I would propose the following:
I know dropping xwayland and opengl is unpopular, but this is where things are going. It’s on the gnome Todo sometime because as far as I read, there is development for mutter to be built totally without xorg support. Plus they recently switched gtk4 to use New vulkan rendered by default.
Another question came to my mind: how is video processing handled? There were some changes in Mutter and/or gtk4 so it would be efficient, any chance for louvre to have it?. E.g. https://www.phoronix.com/news/GNOME-46-Beta-Released
I agree, all the apps I use run natively on Wayland, but I think there will always be some legacy X11 apps that won’t get ported. So, I think I’ll implement it, but it is definitely not a priority.
I think I can just add support for Vulkan. There is no need to get rid of GLES as it increases the range of supported devices.
I know that Linux Mint already has support for Wayland. I am not sure which library or base compositor they are using, but I am always willing to support anyone using Louvre. Right now, I want to focus on developing my own compositor, which I’ll name Crystals.
That’s an important feature, which I’ll add at some point.
Looks very interesting! I wonder how it works, so I definitely will check it out.
Why?
Currently, the only type of buffers that are directly scanned out are cursors. I want to add an API to allow the use of other types of buffers soon. It is a bit complicated because overlay planes are very hardware-dependent and limited, and they support a few specific formats/modifiers. So, you also need to negotiate that with the client and so on.
While I understand the need for legacy, I also think at some point legacy should be left alone. If it is really needed for some old app to run, VM should do fine. I don’t think missing xorg is ever going to be an issue in 2025+ (well, Electron apps maybe). Yet added and not used features (or seldom used features) is offset with future maintenance burden and/or security issues for no good reason.
This also applies to OpenGL comment. Every code path introduces a maintenance burden. While support of more devices is good, supported devices are super old in this case and the question is - is it worth it? Vulkan drivers should either way be in a better state.
Is super cool, there is a presentation in one of the conferences about it. Architecture is explained somewhere in the docs. Anyway, if you do implement it - this would be a good alternative to https://guacamole.apache.org
Who knows, maybe it would be a money opportunity.
It’s not Microsoft, but actually an open source community running open source forge. Also, it’s way faster to use in browser.
Regarding Xwayland, I think so, but with respect to OpenGL + Vulkan, I don’t see it as that complicated. It’s a matter of configuring contexts and updating Louvre’s higher level APIs for buffer allocation and rendering.
Oh, so it basically displays a remote window manager in the browser? For a moment, I thought it was running the compositor directly inside the browser with extensions or something like that, hahaha.
I see. Well, to be honest, I am quite comfortable with GitHub and its features like actions, discussions, etc., and I don’t really care if Microsoft owns it as long as it’s free. But thanks for the suggestion.
I saw it basically months ago, so don’t remember 100%. To not say the wrong thing, you can read about the architecture here: https://greenfield.app/pages/design/
Also, here is a video. The dev demonstrated it’s fast enough for gaming https://fosdem.org/2024/schedule/event/fosdem-2024-3219-greenfield-wayland-in-the-browser-an-update/
In simple usage OpenGL can perform identical to Vulkan. A compositor with little complex rendering won’t change.