Skip Navigation

I don't know who Wayland is

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

137 comments
  • It's a standard to display programs and let them interact with each other. The old way is X11 which is a big program handling all of that. With Wayland every desktop and window manager (like KDE, Gnome, i3wm, Sway, etc) take up the role of Xorg themselves, giving them better control.

    Every program has to be changed to work with Wayland. Those that don't run through Xwayland, a program mimicking the old X11 standards on Wayland.

  • What is Wayland? It is such a basic concept I don't need to explain it to you. Of course I understand it.

  • Wayland is a display protocall. What does that mean? Well, it describes how a program on linux tha displays graphics to a user should work. Examples of programs which do this include kwin, mutter, and sway. It's why you see stuff on your monitor and why when you open an app, it's in a window, which can be moved.

    All that along with a good amount of supplementary tools, makes up wayland.

    Currently we are transitioning from a 40 year old protocal called X11 which has many issues and few people willing to work on. Wayland offers a codebase without the spaghetti, more security, easier feature development, and to a point backwards compatibility.

  • Eli5: Wayland is a new way for Linux to make things appear on your screen, things like windows, graphics, and even your whole desktop.

    The old way was called Xorg. It has been around for a very long time, and works pretty well, but the code is veryyyy messy and many developers wanted a new and easier way to make things appear on your screen, so they made Wayland.

    (It's debatable how much easier Wayland actually is vs Xorg, but at this point most major distros are switching over to Wayland, so it's a moot point)

  • Wayland is a modular communication protocol that specifies how a compositor interacts with its clients, as well as a replacement for X11.
    \ Wayland does not aim to provide a commonly used compositor implementation that could be used by everyone.

    This modular approach allows for different desktop environments to have their own Wayland compositor implementations that reliability produce the same or virtually the same output based on the communication specifications without the increased challenges of integrating it into existing Desktop Environments or Window Managers as it allows for more flexibility in implementation. As an analogy, it's like if several people were making the same type of sandwich in different ways, as long as the "client" (the application) gets the sandwich they asked for, the specific process doesn't matter.

    In contrast, Xorg is a single, monolithic X11 implementation. Due to Xorg's dated, non-modular design, maintaining and extending it's functionality is extremely difficult. Infact, it's lack HDR support to this day is due to its inflexible architecture.

    Wayland compositors combine the functionality of a display server, window manager, and compositor into a single component. This simplified architecture is one of the main design goals of Wayland compared to Xorg/X11 where the display server, compositor & window manager are separate components. This approach ultimately streamlines the rendering pipeline where applications render locally and communicate directly with the compositor, cutting out the X server entirely. Wayland's client-side rendering is more modern and cleaner than Xorg's approach.

  • 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.

    • 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?

      • 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.

      • 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.

      • 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.

137 comments