this post was submitted on 29 Apr 2024
474 points (96.1% liked)

linuxmemes

21428 readers
1096 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.
  •  

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't fork-bomb your computer.

    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
    [–] Gormadt@lemmy.blahaj.zone 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?

    [–] devfuuu@lemmy.world 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.

    [–] sxan@midwest.social 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.

    [–] Rustmilian@lemmy.world 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

    [–] redcalcium@lemmy.institute 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.

    [–] Gormadt@lemmy.blahaj.zone 1 points 7 months ago (1 children)

    What kinds of features does it gain and lose?

    [–] redcalcium@lemmy.institute 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.