this post was submitted on 29 Apr 2024
180 points (94.6% liked)

linuxmemes

21355 readers
1296 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

    top 50 comments
    sorted by: hot top controversial new old
    [–] shrugs@lemmy.world 80 points 6 months ago (1 children)

    I'll try to explain:

    In the past we only had text terminals without a graphical interface ~1990 (sh / bash / tty). so the display server (Xorg / formaly known as X11) was born. it's a piece of software that allows programs to not only print text to screen but to draw complex geometrical shapes. This allowed for gui programs that use frameworks like qt or gtk or motif... to draw buttons and shit using Xorg.

    For having mutliple "windows" / "programs" running they invented a window manager, that drew a border around the windows with some min / max /close buttons and the modern gui was good to go. btw. the next step are desktop environments like kde or gnome but that would be too much for this post.

    Back to display server (Xorg) and window manager (kwin, mutter, metacity, dwm, awesome, i3...): the design of xorg is super old and has many shortcomings like hdr, variable refreshrate or security: every window can read the contents of or produce input for other windows which is a nightmare for todays security standards.

    So wayland was invented to use state of the art concepts and design. Here comes the big problem: State of the art concepts required wayland to not be a display manager like Xorg. wayland is more like a protocol that defines how to draw windows, resize and close them or how they are allowed to talk to each other. Since wayland is only a protocol+ the window manager now needs to do the heavy lifting of coordinating this protocol, drawing and stuff like that, which in turn results in way less window managers that support wayland because they are complex as hell.

    Since modern software needs to support a heck of a lot of different ways for applications to interact with each other rewriting these functionality for wayland needs time. thats the reason desktop sharing/recording or muting your mic with a keyboard shortcut when the webex window was not in focus wasn't possible at first. new solutiones needed to be developed for that (pipewire for example). Many programs would run in an xorg window that was implemented as a wayland window (xwayland) which made transitioning to wayland much easier but introduced new problems.

    At the moment we are in a transitional phase. many programs already work without problems, but many software still require features wayland doesn't have and might never implement. Everyone needing that software is hating on wayland. everyone needing variable refreshrate, fractional scaling or security prefers to use wayland. And the fighting begins.

    Disclaimer: There might be errors, simplifications or misunderstandings on my side but thats the way i understood if. Feel free to correct any mistakes on my part.

    [–] danekrae@lemmy.world 9 points 6 months ago (1 children)

    I read this with the voice of the narrator in the Animatrix movie.

    For having mutliple “windows” / “programs” running they invented a window manager (and for a time, it was good)

    [–] shrugs@lemmy.world 4 points 6 months ago (1 children)

    I hope this made it more enjoyable to read. English is not my first language

    [–] caseyweederman@lemmy.ca 8 points 6 months ago

    I wouldn't have guessed that!

    [–] savvywolf@pawb.social 57 points 6 months ago (9 children)

    Programs running graphically (Firefox, your file browser, etc.) need a way to tell the system "draw these pixels here". That's what the display server does; it takes all these applications, works out where their windows are and manages that pixel data.

    XOrg has historically been the display server in common use, but it's very old and very cobbled together. It generally struggles with "modern" things that must people expect today. Multimonitor setups, vsync, hdr and all that. They work, but support is hacked together and brittle.

    Wayland is a replacement for XOrg that was designed from scratch to fix a lot of these issues. But it's been an uphill battle because XOrg is the final boss of legacy codebases.

    tl;dr They're both software that manages drawing pixels from applications to the display.

    [–] Ensign_Crab@lemmy.world 19 points 6 months ago

    XOrg is the final boss of legacy codebases.

    Pretty sure the IRS still holds that title.

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

    The TLDR was really helpful NGL

    So it's software that handles software wanting to display things on the screen. Because having each piece of software do it itself would be not only chaos but a massive security concern. And it's a big deal because it fixes (by replacing) the old software with something that's easier to work with than the old ways of doing things (due to all new code that's not spaghetti that's hacked together over decades).

    Am I close?

    [–] loutr@sh.itjust.works 18 points 6 months ago (2 children)

    Because having each piece of software do it itself would be not only chaos but a massive security concern.

    Not really, the main point is that (most) apps don't know where they are on the screen, whether they're minimized, on the active workspace, ... and they don't care either. That's the responsibility of the window manager.

    The app tells the display server "I need a window to display these pixels" and that's it. And the window manager, well, manages these windows.

    On the topic of security, X11 doesn't handle security at all, that's one of the main issues. So any graphical app can read the other windows' pixels, grab everything you type, everything you copy, ... OTOH Wayland isolates apps so they can't do that by default. Apps that really need to (screenshot apps, ...) can use "portals" to ask for these permissions.

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

    That's really interesting and thank you

    I think I'm beginning to get it now, and Wayland does sound better than X11 at least

    [–] bisby@lemmy.world 17 points 6 months ago

    I use wayland, but be warned that there are downsides.

    X11 is 40 years old. Which means that even though it has 40 years of bad decisions baked into it, it also has 40 years of features and tooling built around it.

    And in some cases, things are purposefully broken in the name of security as mentioned above. Writing a keylogger on X11? Easy. Every app can watch the keyboard even when they aren't in focus. So if I type my password into firefox, Discord can listen. Hope you don't have any malicious apps just patiently listening to all your keystrokes.

    Getting rid of input listening sounds great! .... Except for the concept of global keybinds. Have a Push to talk button in discord that you need it to be able to listen to while youre playing a game? Sorry, the game is in focus, so discord can't see ANY of your input. Including the push to talk button. Different wayland servers have different ways of handling this with their portals. Some don't have it at all. And the ones that do don't always have great solutions.

    One major issue that has been in wayland debate hell... how do multi-window apps communicate with each other. For example GIMP. The editor window is a separate window from the toolkit which is a separate from the layer view. GIMP on X11 knows where all of its windows are because it can see everything. if you wanted GIMP to save all the window positions, it could. GIMP on Wayland has no idea where each window is relative to each other. Each window knows its own size and shape. And thats it. It doesnt know where on the screen it is. Which means it doesnt know where it's other sub windows are relative to itself. Which means GIMP on Wayland can't really save the window positions for next run. Wayland is working on a protocol for handling this, but its been caught up in debate hell last I saw. This is a prime example of a thing X11 had. And Wayland will someday have, but the 40 year headstart and disregard for security gives X11 a huge headstart.

    Most of these problems have workarounds and solutions, but you might find yourself in a situation where you do in fact need to implement a workaround instead of having everything Just Work.

    "Better" means different things to different people. Architecture and security and technologically? Wayland is better. Just Works and its what your apps were probably built to run on so less weird edge case issues? X11 is still better just due to inertia. (And again, I use Wayland, I'm willing to deal with the workarounds, but you do you).

    [–] oo1@kbin.social 4 points 6 months ago (1 children)

    Does it also handle key and mouse inputs to make sure they're interpretted by the right programme in the right context?

    load more comments (1 replies)
    [–] Shareni@programming.dev 5 points 6 months ago* (last edited 6 months ago) (2 children)

    But it's been an uphill battle because XOrg is the final boss of legacy codebases.

    Also because Wayland forces every compositor to be an unmodifiable monolith instead of following the UNIX philosophy. For example I'm currently running i3 inside of Xfce because the de, wm, compositor, and every other part are doing their own thing and can be replaced. With Wayland I'd need to fork the compositor and spend a ridiculous amount of time on something that's trivial in xorg.

    And let's not forget the garbage pile of tools that got abandoned a week after release because Wayland introduces breaking changes on a regular basis. You want unified shortcuts across multiple compositors like with sxhkd? Tough luck, the only tool was abandoned after the first version and doesn't work anymore. On the other side you've got 15 rofi alternatives you need to dig through to find out which ones are still maintained and might work on your device.

    On top of that Nvidia GPUs have so many issues, and while that's not solvable by Wayland, it's still a major issue that still hasn't been fixed after 15 years, but might maybe soon™.

    Finally, the security improvements have gave me nothing but headaches whenever I tried using Wayland. No matter the distro or compositor, screen sharing and recording never worked for me. Give permissions, share whole screen or just window, it's either black or the program is not showing I'm trying to share ate all.

    You can't blame it all on xorg when Wayland is still simply far worse for a large part of the community.

    load more comments (2 replies)
    [–] 1_4M_N008@programming.dev 4 points 6 months ago* (last edited 6 months ago) (1 children)

    It seems an opportunity to ask my stupid questions.

    Q1. If I am going to build my minimum linux installation without a GUI, does this require a display manager?

    Q2. is there other way to interact with my machine other than tty

    [–] macaroni1556@lemmy.ca 6 points 6 months ago* (last edited 6 months ago) (5 children)

    Q1: No, it does not require X. But some software even if not graphical, requires X libs for whatever reason (e.g. Using Qt)

    Edit: to answer Q2: I don't think there is technically a way to interact with the system without a TTY but thats technicalities. Your more practical answer is to use SSH to log in and interact. This is how most IoT things work which run Linux and have no display capability at all.

    load more comments (5 replies)
    load more comments (5 replies)
    [–] VinesNFluff@pawb.social 43 points 6 months ago* (last edited 6 months ago) (4 children)

    XOrg and Wayland are two different programs that serve the same purpose, which is to act as a sort of middleman between the graphics driver, the window manager(s), and the many programs you're running.

    XOrg is ancient. Early 80s ancient. It's been added to since those days as need arose, and is therefore full of weird messy legacy stuff and jury-rigs. But it is also what Linux has used for a very, very long time, and is therefore like. Ol' Reliable workhorse, yanno?

    Wayland is a new and bold step that rewrites the entire system from the ground up to address the shortcomings of XOrg (don't ask me to specify, I actually don't know), it has, however, been criticised for not having (and devs downright not wanting it to have) certain features that XOrg has. But it can also run applications that expect XOrg with a thing (jargon escapes me) called XWayland.

    Personally I've used both. And... Uh...

    Wayland was a bit faster and smoother maybe? But it also caused some specific applications to misbehave and get all crashy-buggy. But that was a personal experience and may well have been my fault.

    [–] azvasKvklenko@sh.itjust.works 11 points 6 months ago* (last edited 6 months ago)

    Wayland is not a single program. It’s specification and set of basic client/server libraries that can be used to implement a compositor. Compositor are implementations of the Wayland protocol and there are multiple such programs that are different one from another, but generally serve the same purpose and are compatible with the same clients. General idea behind Wayland compositor is that it blends images from different clients into single frame that is then sent to kernel

    [–] possiblylinux127@lemmy.zip 5 points 6 months ago

    Wayland is not a program, it is a protocol. The implementation is in the desktop or Window manager.

    [–] havokdj@lemmy.world 4 points 6 months ago* (last edited 6 months ago) (4 children)

    Wayland is a lot more secure and the way it handles clients is a lot more sane in todays age, but thing is, it is a hell of a lot more complicated if you come from a window manager background, and your choice of applications is incredibly small. Sure you can run a lot of your stuff in XWayland, but what exactly is the point of running wayland if you are going to run less secure X apps with 94% of the same vulnerabilities?

    X is less secure, but the security of your system from the outside is far *faaar more important than the security on the inside. Only when an intruder actually infiltrates your system do you have a real concern, and that's only talking about remote access. Physical access given enough time is root access.

    A lot of people tout X as being considerably more bloated than wayland which is why the project is basically in maintenance mode, wayland is definitely a lot quicker than X, but X has many reasons including support from literally every single linux application out there, something wayland is very likely never going to acheive even with XWayland.

    [–] flying_sheep@lemmy.ml 9 points 6 months ago* (last edited 6 months ago) (7 children)

    what exactly is the point of running wayland if you are going to run less secure X apps with 94% of the same vulnerabilities?

    When running Wayland, one X server is started per X application. So that application won't be able to e.g. keylog others.

    I personally don't care about security here, it's all about a flicker free Multi-monitor experience with different refresh rates per monitor. X just can't do that under any circumstances.

    load more comments (7 replies)
    load more comments (3 replies)
    load more comments (1 replies)
    [–] merthyr1831@lemmy.world 16 points 6 months ago

    The end goal of wayland is that you shouldn't ever have to know what it is.

    [–] possiblylinux127@lemmy.zip 15 points 6 months ago

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

    [–] sabin@lemmy.world 11 points 6 months ago (1 children)

    In short it's essentially a protocol that defines what type of requests must be sent between applications and a compositor.

    [–] dlok@lemmy.world 9 points 6 months ago (2 children)

    I don't know what compositor is and at this point I'm too afraid to ask

    [–] Telodzrum@lemmy.world 8 points 6 months ago (1 children)

    It draws on the screen what programs and the desktop environment tell it to -- including opacity, tiling, clicks, drags, updates, etc. Everything you visually perceive on the monitor is the product of the compositor.

    [–] Psythik@lemmy.world 5 points 6 months ago (1 children)

    Okay but why is it seemingly always associated with gaming? Anytime someone mentions Linux gaming, I often hear people asking them if they're using Wayland.

    [–] Telodzrum@lemmy.world 4 points 6 months ago

    I'll step aside for a longer answer on this one. But, I can say that for my usecase (which is mainly gaming on my home PC on an all AMD build with KDE on Arch) it is noticeably and measurably faster than X11. We're talking 2-15 (the median is around 4 or 5) FPS depending on the game on 144hz screens.

    [–] trolololol@lemmy.world 6 points 6 months ago

    See what you did?! Now there's two of them!

    [–] Damage@feddit.it 10 points 6 months ago* (last edited 6 months ago) (1 children)

    No matter! Pick a side now and join the jihad!

    [–] platypus_plumba@lemmy.world 8 points 6 months ago (1 children)

    It's not even hard picking sides when Wayland sucks so bad....

    (I don't know what Wayland is either)

    [–] xrtxn@lemmy.sdf.org 6 points 6 months ago (1 children)

    Wrong choice buddy (wayland is the best thing ever happened trust me 100%!!!)

    load more comments (1 replies)
    [–] Samsy@lemmy.ml 10 points 6 months ago

    Like you are 5: Wayland is the thing that brings the beep boop from the computer to a screen. It's the son/daughter from Xorg which is old af, and needs to die because no one wants to work on it trillions lines of code.

    [–] fxt_ryknow@lemmy.world 10 points 6 months ago

    My neighbors dog is Wayland. He's a good boy!

    [–] havokdj@lemmy.world 10 points 6 months ago (1 children)

    Wayland is basically just X12

    load more comments (1 replies)
    [–] Gakomi@lemmy.world 9 points 6 months ago (1 children)

    In short a graphics interface with code that is not old af!

    [–] caseyweederman@lemmy.ca 10 points 6 months ago (6 children)

    I mean

    Only relative to Xorg

    load more comments (6 replies)
    [–] Mr3Sepz@feddit.de 9 points 6 months ago

    I am also a noob, but here is how I think it is: What your Computer is doing is not what you see. Until now we were using an oldschool way to display stuff called X11 aka. Xorg.

    But this is very old and has 3 problems:

    • It is very old and hard to improve (code very complex, spagetthi, whatever)
    • Has security problems (I dont know what or how)
    • No modern features yet (HDR, and so on)

    Because people want to use new display features to work and security, people built this display software code whatever new from scratch. And this is Wayland.

    [–] Omgboom@lemmy.zip 8 points 6 months ago

    Wayland Jennings, a great country singer

    [–] yesman@lemmy.world 8 points 6 months ago

    Waland is the British half of the mega corp Waland-Yutani. Sometimes called Wa-Yu, or simply "the company"

    Founded by Charles Bishop Wayland, the totally not evil billionaire industrialist, Wayland LLC was known for energy production, computer technology, and planetary terraforming before it was acquired in a hostile takeover by the Japanese Yutani corp in 2099.

    [–] Tikiporch@lemmy.world 7 points 6 months ago

    Famous country western singer Wayland Jenkins.

    [–] baseless_discourse@mander.xyz 7 points 6 months ago* (last edited 6 months ago) (4 children)

    Basically, you should try it, if it works, keep using it; if it doesn't, switch to xorg to see if that fixes your problem.

    Wayland is newer, have better support for multi-monitor, and application cannot see what you are typing in other app (so they cannot log your key and send your password to someone else).

    load more comments (3 replies)
    [–] refalo@programming.dev 7 points 6 months ago

    Just don't ask what hyprland is.

    [–] Melvin_Ferd@lemmy.world 7 points 6 months ago
    [–] EnderMB@lemmy.world 5 points 6 months ago

    Isn't he the personal assistant to Mr Burns?

    [–] knightly@pawb.social 4 points 6 months ago* (last edited 6 months ago) (3 children)

    Super-short version:

    The system that Linux uses to draw anything on the screen (showing the desktop, your windows, their contents, etc) is called a display server.

    Linux has been using a display server called the X Window System (or x11) since its inception, but it's ancient and has limitations that can't be fixed without breaking everything that depends on it.

    The Wayland compositor is the new display server that will be replacing x11, improving security and adding support for newer features like HDR. It's nearly ready for a full release now, and is already the default for some Linux distributions.

    [–] schnurrito@discuss.tchncs.de 4 points 6 months ago (2 children)

    Since the 80’s, Linux has been using a display server called the X Window System

    This is, of course, not true, given that Linux did not yet exist in the 1980s.

    Unix-like systems that predate Linux did already use it in the 1980s.

    load more comments (2 replies)
    load more comments (2 replies)
    load more comments
    view more: next ›