this post was submitted on 16 Sep 2023
99 points (85.6% liked)

Linux

64599 readers
596 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

Now, I really like Wayland, and it's definitely better than the mess that is X11

BUT

I think the approach to Wayland is entirely wrong. There should be a unified backend/base for building compositors, something like universal wlroots, so that applications dealing with things like setting wallpapers don't have to worry about supporting GNOME, Plasma, Wlroots, AND Smithay (when COSMIC comes out). How about a universal Wayland protocol implementation that compositors are built on? That way, the developers of, say, wayshot, a screenshot utility, can be sure their program works across all Wayland compositors.

Currently, the lower-level work for creating a compositor has been done by all four of the GNOME, KDE, Wlroots and Smithay projects. To me, that's just replication of work and resources. Surely if all standalone compositors, as well as the XFCE desktop want to, and use wlroots, the GNOME and KDE teams could have done the same instead of replicating effort and wasting time and resources, causing useless separation in the process?

Am I missing something? Surely doing something like that would be better?

The issue with X11 is that it got big and bloated, and unmaintainable, containing useless code. None of these desktops use that useless code, still in X from the time where 20 machines were all connected to 1 mainframe. So why not just use the lean and maintainable wlroots, making things easier for some app developers? And if wlroots follows in the footsteps of X11, we can move to another implementation of the Wayland protocols. The advantage of Wayland is that it is a set of protocols on how to make a compositor that acts as a display server. If all the current Wayland implementations disappear, or if they become abandoned, unmaintained, or unmaintainable, all the Wayland apps like Calendars, file managers and other programs that don't affect the compositor itself would keep on working on any Wayland implementation. That's the advantage for the developers of such applications. But what about other programs? Theme changers, Wallpaper switchers etc? They would need to be remade for different Wayland implementations. With a unified framework, we could remove this issue. I think that for some things, the Linux desktop needs some unity, and this is one of these things. Another thing would be flatpak for desktop applications and eventually nix and similar projects for lower-level programs on immutable distros. But that's a topic for another day. Anyways, do you agree with my opinion on Wayland or not? And why? Thank you for reading.

all 50 comments
sorted by: hot top controversial new old
[–] fubo@lemmy.world 70 points 2 years ago (1 children)

Don't worry too much about the duplicated effort of different projects implementing the same standard on their own. It's good to have lots of implementations of a standard. That's what makes it a standard rather than just some code we all depend on.

[–] qprimed@lemmy.ml 20 points 2 years ago

That's what makes it a standard rather than just some code we all depend on.

succinctly encapsulates the importance of code diversity. 👍

[–] dack@lemmy.world 62 points 2 years ago (1 children)

Things like taking screenshots and setting wallpaper actually do have a standard API. That stuff is just part of xdg desktop portals and not the core Wayland protocols. If, for example, a screenshot app uses the org.freedesktop.portal.Screenshot API then it should work with any compositor (as long as the compositor follows the API standards).

[–] gamma@programming.dev 2 points 2 years ago* (last edited 2 years ago)

Well, those requires D-Bus. The wlroots project decided early on to support non-dbus software stacks, so wlroots compositors expose Wayland protocol extensions which could either be used directly or wrapped by the xdg-desktop-portal-wlr daemon.*


*(Well... many wlroots devs argued that the ecosystem should have chosen WP extensions instead of dbus, but I think most relented when Pipewire entered the equation.)

[–] cyclohexane@lemmy.ml 34 points 2 years ago (1 children)

Wayland isn't to blame for duplicate effort. Instead of 4 different efforts doing the same thing, they can collaborate to build a common base. Heck, wlroots is exactly that.

There's a ton of duplicated work in Linux ecosystem. Just think about every new distro coming out doing the same things other distros did. Just think about all those package managers on different distros. They do almost the same thing. Do they need to have codebases that share nothing? No. But they don't care. They rather duplicate effort. They chose this.

[–] nous@programming.dev 31 points 2 years ago (1 children)

I don't quite follow your arguments. X11 got big and bloated, wayland applications need to worry about the different compositors? So we should use one implementation? Implementations should be irrelevant. That is the whole point of an API/protocal - a description of how things should talk to each other even for different implementations.

I don't see how one implementation helps here - that one implementation still needs APIs for the applications to talk to. The problem is not that there are different implementations but maybe that the wayland protocol does not cover enough of the API space needed by applications. Some of which are addressed by things like the xdg-desktop-portal.

[–] theshatterstone54@feddit.uk 3 points 2 years ago (1 children)

Well, yes, but there are programs like wdisplays, wlr-randr, etc. which only work on wlroots compositors. Why is that the case?

[–] nous@programming.dev 8 points 2 years ago

It should work in any compositor that implements the wlr-output-management-unstable-v1 protocol. Compositors that are known to support the protocol are Sway and Wayfire.

It uses a new unstable protocal that others dont support yet. The fact it is unstable suggests it might change over time as well,

[–] Laser@feddit.de 21 points 2 years ago (1 children)

The issue with X11 is that it got big and bloated, and unmaintainable, containing useless code. None of these desktops use that useless code, still in X from the time where 20 machines were all connected to 1 mainframe.

I don't think that is very fair to say. From what I heard, the X.org code as in the implementation of the protocol and its extensions is actually of very high quality, so it can be maintained. The problem as you correctly describe is the design and the resulting protocol with its extensions which don't fit modern needs.

It's also not like theoretically multiple X11 servers implementing the X Window System couldn't have existed simultaneously, it was just too much effort regarding the complexity of the protocol. In fact, for a short time, two different implementations existed: XFree86 and the X.org server. Granted the latter was a fork of the former, but they were independent projects during the time of their coexistence.

[–] Auli@lemmy.ca 9 points 2 years ago (1 children)

But it is fair to say that considering they started Wayland because they could not fix the issues with X11.

[–] Gamey@feddit.de 4 points 2 years ago

Yea, sometimes new problems need new solutions and the old architecture can get fundamentally outdated!

[–] Blaster_M@lemmy.world 18 points 2 years ago (1 children)
[–] theshatterstone54@feddit.uk 2 points 2 years ago

Yeah, that's why I think it would be better to focus on existing standards rather than multiplying work so much, when that time could have been used for more productive tasks like working on accessibility or fixing bugs, or addressing documentation issues, or when everything else is done, working on the Mobile space, which is very much an emerging market.

[–] Spore@lemmy.ml 10 points 2 years ago

So why not just use the lean and maintainable wlroots

wlroots can't be used (comfortably and idiomatically) in Rust because it's too hard (if not impossible) to provide a memory-safe interface for it.

we can move to another implementation of the Wayland protocols.

So unfortunately this has already happened.

[–] MonkderZweite@feddit.ch 5 points 2 years ago (1 children)

What i wonder about, why do compositors have to handle Keyboards (again)? Wayland does and X did. Shouldn't that be separately handled?

[–] nous@programming.dev 15 points 2 years ago (1 children)

What do you mean by handled seperatly? Both wayland compositors and X11 use libinput nowadays to get input from the hardware. But then it needs to be routed to the right application - the one that is in focus minus any global shortcuts that the compositor might want to deal with. The compositor is what understand what application has focus and thus is what knows where to send input to so it makes sense for it to handle that. It is not just about where to render windows - but manages all events such as input that applications require.

[–] MonkderZweite@feddit.ch 6 points 2 years ago

Right, forgot that part.

[–] GadgeteerZA@beehaw.org 1 points 2 years ago (1 children)

I love the idea of Wayland, but it only finally actually booted for me onto the desktop earlier this year (on Manjaro KDE). But it still randomly freezes for about a full minute, quite a bit. I am keen to move to it as my compositor hangs on X11 for some odd reason on KDE every time I try to do a rectangular area screenshot with Spectacle (mmm just realised it is also for around a minute - maybe I do have some other underlying issue), or when accessing the Compositor menu option. But X11 is still otherwise rock solid for me.

[–] yum13241@lemm.ee 2 points 2 years ago

Manjaro's to blame. Manjaro ships botched packages sometimes, and they are always two weeks behind, meaning you can't use the AUR lest you break your system.