5 ms·
>I guess the question really is, could you write a general compositor, which just handle inputs and output, and then use that compositor to run any number of di
by Sir_Cmpwn 8y ago
>I guess the question really is, could you write a general compositor, which just handle inputs and output, and then use that compositor to run any number of different desktop environments where the authors technically doesn't need to worry about Wayland?
This is a goal we're working towards in the wlroots camp. You could do this, but the issue would be running a lot of the things that tend to define the desktop environment, such as the panel, menus, desktop feel, etc. In order to support that, we need a Wayland protocol that lets clients have some say in where they are displayed on-screen, such as a taskbar wanting to be shown across the bottom. For wlroots we made such a protocol[0], and it is slowly being adopted across the ecosystem. Porting DEs to use it would be a great way to help improve Wayland :)
[0] https://github.com/swaywm/wlr-protocols/blob/master/unstable/wlr-layer-shell-unstable-v1.xml https://github.com/swaywm/wlr-protocols/blob/master/unstable...
- mrweasel 8y agoThank you, nice to know that I'm not completely of :-)
- phkahler 8y ago>> You could do this, but the issue would be running a lot of the things that tend to define the desktop environment, such as the panel, menus, desktop feel, etc. In order to support that, we need a Wayland protocol that lets clients have some say in where they are displayed on-screen, such as a taskbar wanting to be shown across the bottom. Isn't that the job of something higher level? I thought the wayland compositor would implement some desktop environment functionality. In other words the compositor itself would also define the DE by starting a panel and placing it at the top/bottom/side and by starting and placing any other items/processes that are part of that environment. I understand that this would add complexity to the compositor but isn't that where it really belongs? I still feel like it's a security concern for general processes to know much about the environment they are running in. OTOH I want to start several things at login and have the ability to place the windows from a script (like .login and passing window geometry to X). These are interesting issues and I hope the people making the decisions are keeping things both secure and simple in the software. BTW, I'm hoping for animated wallpaper on my desktop. This is a low priority, but would that be an application that runs in root window, or would that be something the compositor knows to start an places it there? IMHO that's so special it's more of a compositor feature, but who knows... Should there be added protocols to do these things or just make a special compositor feature? I'm in favor of having it a compositor feature rather than increasing complexity of a protocol - I think it's less complex.
- Sir_Cmpwn 8y ago> I thought the wayland compositor would implement some desktop environment functionality. In other words the compositor itself would also define the DE by starting a panel and placing it at the top/bottom/side and by starting and placing any other items/processes that are part of that environment It can, that's how GNOME works today. It's not how it generally works on X, though, and it's not very modular. As far as security is concerned, our layer shell protocol assumes that the client is trusted. We're working on ways of securely allowing third-parties to access this, but it's possible today to start implementing layer shell and restrict its use to trusted clients. >BTW, I'm hoping for animated wallpaper on my desktop This is possible with the layer shell protocol I'm talking about.
- phkahler 8y ago>> It can, that's how GNOME works today. It's not how it generally works on X, though, and it's not very modular. We don't need modular. >>>BTW, I'm hoping for animated wallpaper on my desktop >> This is possible with the layer shell protocol I'm talking about. It's also possible by building the feature into the compositor. No new protocols or possible security issues needed. Simpler is better in most cases.
- Sir_Cmpwn 8y agoI don't think that makes it simpler. I think that just makes a massive compositor which tries to please everyone and ends up pleasing no one, and being 10x the size it needs to be.
- phkahler 8y agoUltimately the compositor IS the desktop environment. You can try all you want to keep it simple and enable functionality via other apps using a protocol, but that's essentially a complicated way of making plug-ins to the compositor. You will end up delegating security to everyone else.