Cool. I guess I can delay switching to Wayland until the future!
Cool. I guess I can delay switching to Wayland until the future!
This is spot on and it makes me sad. We have hardware and programming languages available to us that people could only dream of 30 years ago and so much of the software we produce with it is objectively worse. I don't think Wayland (or X) is really salvageable at this point.
I know, all of the things I said can be said to be the worsening of the software. But what many people think when they read that sentence is that just the simple act of updating software is detrimental to the user's needs. Which I don't think is true all the time.
Same, but I'd take a step further. If the most common argument in favor of application X or Platform Y is that it's "more modern" or "the future", I make a mental note to avoid using that tech if at all possible - it's almost always guaranteed to be garbage. It's the tech equivalent of being set up on a blind date and being told the other person is "Nice".
That being said. Wayland is good and it shall have replaced X11 years ago! It is made by the same people which maintain X11. Same applies to Systemd, implemented in C, unified interface and simple configs. Nothing is perfect and things need to mature. As usual :)
And? Tactile keyboards, switches and knobs are much better than touch screens. Mechanical keyboards are the counter reaction to bad input devices. I love TUIs because they are more efficient than GUIs and easier than CLIs. GUI won? Notcurses (C++) and Rust bring many new TUIs.
But also?
I’ve seen Electron and from the first moment I wondered why it resembles Flash. With a built-in huge web browser. Eating resources and fitting nowhere. Same for touch screens in cars. And VR-Headsets…bruh…are that 3D-Shutter Glasses?!
Vice versa - I hope for lightweight AR-Glasses. But only with a standard VESA-Protocol or a BLE-Profile.
Personally I can't wait until everybody comes to their senses and drops this pile of garbage API and goes back to X11.
Also, say what you will about Xorg, but it's very much 'batteries included', the idea of wayland foisting so much of what used to be X's responsibilities off to the wm just reeks of 'ivory tower'ness.
Any application with access to the X11 socket has easy privilege escalation available to it. By for example, injecting into a sudo enabled terminal or keylogging the user.
Admittedly, with Wayland the security situation wasn't ideal until recently with the adoption of security contexts that can finally allow you to deny screen capture access among other Wayland protocols to sandboxed applications[1].
I don't believe I'm an outlier. I believe most Linux users are like me: they are conscious of security issues, and they don't need a nanny to look after them. I don't think that the majority of Linux users are hot-desking corporate users, with multiple user sessions on the same machine, or trying to run a GUI over a network connection. Those are eccentric use-cases.
Red Hat/Gnome are trying to make a version of Linux that can be used by a child. I think that's a fine objective; but it's not even on the horizon. An operating system that just gets out of your way would be lovely, but for now it's a dream (and Windows isn't that system, of course; I think managing a Linux system is miles easier than trying to manage Windows).
As far as Gnome is concerned, it's experienced at least two violent changes of direction in its history. One of the things you need from a child-friendly OS is no violent changes of direction. If a GUI in particular changes dramatically from one version to the next, that's a big fail.
Are you misunderstanding what the OP meant by "socket"? It doesn't have to literally be a network socket, but your X11 apps all connect to the server via some IPC mechanism, could be a network socket or a local named pipe (I think it lives out in /var/, but I'm not on a Linux system atm). Their point was there is no client authentication or separation via this IPC mechanism: one X11 application can send messages directly to another X11 application. That's where their example of a malicious app inserting text into a sudo terminal comes from. You can see this for yourself using a virtual keyboard program. It's just an X11 app like any other, it's just injecting messages for the server to dispatch to another client.
> I believe most Linux users are like me: they are conscious of security issues, and they don't need a nanny to look after them.
I feel under this argument, you can also describe memory segmentation as a "nanny" =/ I don't think many would argue we should go back to shared memory systems.
Sure. I get that. But I don't run malicious applications on X; and I don't pipe the output of curl into bash.
> I don't think many would argue we should go back to shared memory systems.
Me neither. But from my perspective, memory segmentation is necessary to protect me against incompetent programmers, not malicious applications. Breaking X11 security isn't something that happens by accident, it requires actual malice.
The thing about malicious applications is that they usually don't do a lot to inform the user that they are a malicious application. "I don't run malicious applications" is a claim shared by nearly everyone who's ever run a malicious application.
Back in the 80s, I got viruses and trojans, because (a) I was promiscuous with floppy disks, and (b) I worked with students. And I installed software from shady places that came with unwanted stuff like browser toolbars.
Nowadays, I use Linux, and I find I can rely on the distro's package repository. So I only install software from the repository; if I need to try something that isn't packaged by the distro, I proceed with extreme caution.
I'm sure it's different if you're running a corporate Linux desktop fleet; but this is a home network, with one laptop that runs any GUI at all. The laptop exposes no network ports. In fact the entire home network exposes no internet ports.
I think Red Hat would be fine, if they'd stick to serving corporate requirements. I just wish they'd stop shoving stuff down the throats of non-corporate users. I'm particularly annoyed by systemd; Poettering is a specialist in throat-shoving.
Unfortunately, I don't seem to be able to get Bluetooth Audio to work on Linux without pulseaudio. I have a pair of nice Bose cans that I can't use, because I don't want to run pulse. I need a bluetooth audio stack that depends only on ALSA. (I think it's possible, but every time I try I run into a brick wall, and I've got tired)
People frequently get mugged in broad daylight in 'safe' areas.
Malicious applications can come in trustworthy looking packages. Just look at the amount of malicious applications that have been found in python libraries recently, none of which you would have installed or used directly.
X is insecure and your habits maybe have been enough to protect you so far, but banking on them always doing so in the future is kind of silly.
One person may not be gullible enough to unintentionally run a malicious application, but once you extend it to a group of people, the claim will likely no longer be true. What if your coworker(s) accidentally ran a rogue X11 application, their passwords got keylogged, and now your company systems are compromised?
And the above paragraph only operates under the assumption that you, the one person, is perfect, who never makes mistakes, never runs malicious applications, and runs on a distro that is never compromised, providing programs developed by people who are security-minded.
You might have been compromised never knowing it.
On the other hand, the other day when I shared my screen on Firefox, my Wayland compositor (indirectly through xdg-desktop-portal) asked me to confirm that it was my intention to let the browser see my desktop. I felt that was pretty nifty.
If I'm running a malicious application, I have much bigger worries than a an injected sudo. It has access to all my files!
> I feel under this argument, you can also describe memory segmentation as a "nanny" =/ I don't think many would argue we should go back to shared memory systems.
On my desktop I use memory segmentation to protect against programming errors, not for security.
If you practice sandbox hygiene on linux (eg. bubblewrap) the only files it will have access to are the ones absolutely necessary for its functioning such as a private /home/user per application. However if you use X11, all such measures will be useless.
You could of course run nested X11 (eg. Xephyr). But the inconvenience is of such magnitude why not use Wayland?
But this is a rather exotic scenario: the attacker uses an exploit that works on the Linux version of a browser, and uses that to attack some other application running under X11. That's a complicated chain of dependencies; it might be worth it if I was operating a bank of Uranium centrifuges, but not just to violate my privacy (e.g. steal passwords from my password manager).
I think Wayland is a fine project, and when it's mature I'll jump. I'd prefer a local-only GUI. But I don't think it's mature yet. And the way it's pushed reminds me of Poetteringware; I need to be sure I'm not being shafted.
You're not hearing me. For most desktop users, there was never a need to sandbox applications. It's simply not a threat vector 99% of desktop linux users have ever dealt with. It's certainly not a big enough problem to break the screen / input recording and sharing of tons of applications. Again, if you need to do that, the correct way is to PROMPT the user, not invisibly disable it entirely.
And the sandboxes that do get used aren't very vulnerable to X11 attacks. If you're running firefox the web process sandbox doesn't have X11 access, and by the time the rendering process gets chain-exploited it can access your files directly without needing to go through X11.
Even if Firefox is perfect, that still leaves everything else which connects to the outside world or opens downloaded files. We know there’s a long history of those exploits and everyone serious in the desktop OS space has been trying to harden things so it’s not a single mistake away from an irrecoverable compromise.
Security needs to allow usability or the whole system fails.
[1] https://flatpak.github.io/xdg-desktop-portal/docs/portal-int...
<https://wayland.app/protocols/wlr-screencopy-unstable-v1>
It's rather vague and kind of hard to find more detailed information.
I also agree with the sibling comment from tedunangst that most people just don't worry all that much about keyloggers, nor should they IMHO because it's not really a common attack vector.
[1]: https://fedorapeople.org/~dwalsh/SELinux/Presentations/sandb...
Batteries included? That is the reason why X11 is/was shipped alongside Wayland for some time. It will be dropped and XWayland remains for compatibility reasons. And Wayland has already some batteries X11 doesn’t, better scaling support. Security through Portals/Flatpak. We’re in 2023, screensharing works for some time now ;)
We don’t get stuck in legacy hell like Windows. And we don’t cut off compatibility like Apple. Bumpy ride but prospects are good.
Next thing? A new virtual console for userspace? Something like KMSCON? https://en.wikipedia.org/wiki/Kmscon
I don’t want delete the good old thing. I want see them alive and improving :). Without the usual “it must become worse before it becomes better”.
legacy hell hasn't been a thing for a long time, and flatpack basically uses the same solution Windows does - numerous redundant different versions of older libraries.
> And we don’t cut off compatibility like Apple
Without Flatpack or similar, Linux is honestly pretty terrible as far as backwards compatibility goes.
But yes. Flatpaks require more memory and disk space and fixes in private libraries are not fixed by a friendly package maintainer for all packages. I use native packages from Arch for most stuff and for new hot or weird stuff Flatpak. Especially for Closed-Source weird stuff.
I prefer most - if not all - handle by native packages because that is a core feature of Linux. But there will be always others for reasons. For example plugins, Vim relies here mostly on Vimplug. Steam is thing I need to accept but itself a candidate for Flatpak (currently I prefer the native package). And to be precisely, Meson is also a package-manager for C/C++ developers.
PS: I also use Flatpaks when otherwise many unusual dependencies are involved. That one application using Qt? Flatpak. And vice versa some applications which doing well move from Flatpak to native package (Marker did that).
PPS: GNOME-Software does a good job in handling native packages, Flatpak and LVFS at the same time. I use mostly pacman, flatpak and fwupd. But sometimes I need the captains approach “Linux. Make it so.”.
RN dealing with -
1- when it comes back from suspend, the whole screen is filled with Rainbows. Pretty, but useless. 2- display scaling setting is either ignored or completely broken, no in between. Display settings in general seem wonky.
If I pretend these two things don't exist, the smoothness during gaming is far superior though..
I lurk on several Linux enthusiast forums and subreddits and whenever a new person wanders in asking why they get a blank screen on boot, or their laptop can't resume properly, or their desktop crashes randomly, I have observed that there is a roughly 0.95 chance they have an nVidia card in their system. (With or without the proprietary drivers.)
WTF is this revisionism. There’s a reason nearly everyone in the Linux community has been trying to create an X11 alternative.
Because X11 is really terrible at doing many things.
Sure Wayland doesn’t do everything X11 does. Yet. It’s also decades younger and doesn’t have decades worth of patches and workarounds making things work.
Finally Wayland does things that X11 simply cannot do, and unlike Wayland where some of the things it “cannot” (more often chooses not to by design) do can be offloaded to other parts of the system, the same is not true of X11.
Maybe because the developers themselves have deprecated it? That would be freedesktop.org.
I think an X11 alternative would be a Good Thing. In the future, that might well be Wayland, I suppose. But I don't trust freedesktop.org; I have learned to expect them to play compatibility games in order to achieve hegemony. The main reason I use Linux is to avoid hegemonic overlords.
Agreed. "Perfect" is a stretch. What I'm saying, though, is that on an NVidia card, I can actually run a graphical system with X11. It has screen tearing and freaks out when my monitors aren't framerate matched, but it runs.
Wayland crashes on startup. Every time. I've tried every setting, every environment variable, every kernel parameter, and it doesn't work at all. And when I roll up my sleeves and dig deep on forums/github issues, the answer I get is basically "Yeah, this is broken. Blame NVidia."
X11 isn't under active development. That's not a good situation. However, I don't think the alternative is very compelling when their response to a super common system configuration being totally broken is "not my problem. shoulda bought AMD."
>Sure Wayland doesn’t do everything X11 does. Yet. It’s also decades younger and doesn’t have decades worth of patches and workarounds making things work.
It's over a decade old. The remaining blindspots as far as X11 backwards compatibility should be super niche things. Not "using NVidia."
Wayland does not define AFAICT new APIs that a driver needs to support, but it does use the newer ones that nVidia never bothered to support.
Really? I find Wayland way worse for gaming. Like there's a few extra frames of delay or something. It _really_ messes with me and I can't stand it. It's why I'm still on X11 for now.
Also, did you enable VSync on both the tests? And the same form of VSync? That can have an impact on input lag.
edit: I recall reading about timing experiments. IIRC good participants could get down to 10ms accuracy when trying to time moving their finger to a signal.
Nvidia's drivers are flaky and deserve their own condemnation, but that's a problem no matter what you use. You won't escape Nvidia's enormous firmware files and driver jank even if you run your machine headless.
Edit: I did a quick Google search, and your comment is dishonest. Many people are complaining about input lag on the steam deck. They've even measured it [0]
[0] https://www.reddit.com/r/SteamDeck/comments/11yuulz/input_la...
But if were a random new user who booted into Wayland-only new fedora only to find my installation is already borked... what are we supposed to tell them? Oh yea, Linux is only for AMD users.. sorry!