this post was submitted on 29 Apr 2024
476 points (96.5% liked)

linuxmemes

20880 readers
6 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS
 

If anyone wants to give an ELI5 or a link to a video that ELI5 I'd be incredibly thankful

I swear that all the stuff I find is like super in depth technical stuff that just loses me in no time flat

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 7 months ago (1 children)

So you wanna go from home to school. The whole distance/trip can be done on a bus or your moms car. That's a means of transportation. But, now people are creating a train and soon you will have another means of transportation that you can go to school with, by train.

That's it, Wayland is another means of transportation (newer) than the older means of transportation that existed for a long time, x11 or xorg.

The route is how can applications show stuff on a screen, what transport should they use.

[–] [email protected] 3 points 7 months ago (3 children)

Okay I think I'm following so far

And the whole "show stuff on screen" thing

I'm guessing it's kinda like: you've got a couple people sitting there wanting to play with Legos and only so much room to play. They don't have direct access to the play area because of security reasons so they have to ask someone to place the Legos for them. Wayland, X11, and Xorg are all different people they can talk to to place the Legos in a way where no one is fighting for space.

So basically it's a new way for programs to negotiate who has what part of the screen?

I'm guessing Wayland is either more feature rich or lighter on resources and that's why it's a big deal?

[–] [email protected] 3 points 7 months ago* (last edited 7 months ago)

Yeah, it's a new way that programs use to draw their stuff on the screens.

In the middle usually are other stuff that abstract away that part from normal application development, so in general, most applications don't need to care with the low level thing that is being used to draw their stuff, but there is always somethings that some apps will do to bypass or expect to work in a certain way, so sometimes changes and time are need to adjust those applications to play well with the new way of drawing.

The core idea of why Wayland matters is that it is designed to take advantage of the hardware features and how hardware is designed in this century. On xorg, since it was designed around the architecture and expectations of what people thought things should work in the 70s, it was becoming really hard to add features related to how newer hardware worked. Things like multiple gpus, prime architectures, multiple surfaces/screens with multiple aspect ratios and dpis, varying refresh rates, taking advantage of hardware acceleration for graphics drawing, etc, were all really hard things to do because the code had multiple concepts not applicable to the modern age. So, essentially developers were already bypassing 99% of the internals of xorg architecture and hacking things in a very hard way. They basically decided/experimented with stripping apart all the things they didn't need and didn't matter and reduced it to the most basic and core thing that mattered: "how to push these pixels to that surface".

It ended up being a successful experiment, in that it showed it was possible to do.

Now, in the current world, there are solutions that need to be implemented to bring some features up to speed since the wayland thing is so core and barebones. And this is a good thing. It allows developers and applications to think really hard about what they need to do and how they should do and how things should work across all toolkits and desktop environments. Obviously this takes time to make decisions and ensure everyone is onboard, experiment and reiterate on it until good solutions are found.

This last point is what makes end users frustrated when trying wayland because some things are lacking or not ready yet. For the general use, users without really specific needs, they can already use wayland now, but for others they can't because of their particular needs or specific hardware situation.

If xorg is working for you, then there's no need to worry. If it's invisible to you then most likely you shouldn't care, because the desktop environments are changing their sessions to use wayland by default and most users will not perceive any difference. If users see problems and then notice that it's related to using wayland they can choose explicitly to use the xorg version since it will still work for a while.

Hope I didn't make it too complicated now.

[–] [email protected] 2 points 7 months ago (1 children)

It's an entirely different design than X11. It gains features not possible to implement on X11, while losing many features exists in X11. People that like those new features love Wayland, while people that use those missing features hate it.

[–] [email protected] 1 points 7 months ago (1 children)

What kinds of features does it gain and lose?

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

The most obvious, user-visible loss of features are applications no longer able to grab/mess with contents of another application's window. Screen sharing and remote desktop was broken for a long time in wayland until it's fixed via pipewire recently. Under X11, rendering is free-for-all, where any app is free to do whatever it wants to other app's window. Heck, you can even tell mpv to play video on a cell in librecalc if you feel like it. Such shenanigans is now impossible in wayland because it's a big security risk (though I'm not sure if it's actually exploited in the wild).

The most hyped feature of wayland is better support for high resolution "retina" display. Also, you can use multiple monitors with different dpi/scaling in wayland. IIRC it's not possible on X11, though you can use xrandr to force the scaling on each monitor, though it'll result in blurry texts because the scaling is not done natively.

[–] [email protected] 2 points 7 months ago (1 children)

The part about negotiation is a bit off-track.

On one end, in the kernel, there's a big array of pixels that is a picture that gets drawn on your monitor (or monitors). On the other end are a bunch of programs that want to draw stuff, like pictures of your friends and web pages. In between is software that decides how the stuff the softwares want to draw get put into the pixel array. This is Wayland; it was written to replace Xorg, which is what did that job for decades prior to Wayland.

If you understand the concepts of Xorg and window managers, Wayland + a compositor = Xorg + a window manager. Wayland abdicated a lot of work to the compositors, making it simpler and easier to maintain (and compositors more complex and harder). But together, they all do basically the same job. If one of the compositors implemented a network protocol, then you could declare equivalency.

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

Display Server + Compositor + Window Manager = Wayland Compositor = Implementation of Wayland Protocol

Display Server = Xorg = X11 Implementation

Xorg + Separate Compositor + Separate Window Manger = the X11 equivalent of a Wayland Compositor