3 ms·
Wayland's "just don't send callbacks to hidden windows" approach is completely backwards and should have been replaced by the same event-based visibility notifi
by stonogo 4y ago
Wayland's "just don't send callbacks to hidden windows" approach is completely backwards and should have been replaced by the same event-based visibility notification every other GUI uses. The scaling model was wrong, but they've finally admitted that and real fractional scaling (as opposed to over-rendering+downscaling) is close. Wayland blandly dragged X11's biggest technical debt -- implicit synchronization -- along with it, even though every other modern GUI synchronizes explicitly (i.e. moves a lot of work out of the critical path of drawing a frame).
Most significantly, the "only the focused app should be able to read input" is wildly, fantastically wrong, mind-bendingly deviated from the norm on literally every other graphical user interface in the history of humanity, and utterly incomprehensible to anyone who is not an outright "cybersecurity" fetishist. Imagine a windowing system where you are playing a video game with a USB controller, you mouse over to a window to send a text message and your video game loses the ability to process the controller input. This is clearly surprising behavior, if not outright user-hostile, and only Wayland gets this wrong. Rather than fixing it, Wayland devs gaslight users and developers into believing anyone who opposes this bad behavior is anti-security and therefore pro-badguy, or something. So, each separate desktop environment tribe is now having to produce their own bespoke utilities to mux input clientside to enable normal use of computers, because the Wayland protocols are empowered by divine right instead of technical merit.
I want to add that despite the above litany I do regard Wayland as a marked improvement over X11 and I have no interest in going back to the bad old days. None of the problems with Wayland are unfixable in a 2.0 or so bad that it's worth going back to X11. The actual big problem with Wayland is the unwillingless of the core developers to take advice, but that was a problem back when they were the X11 core developers, and I don't see it changing. For those of us who don't have to interact with them, it's a non-issue.
- saurik 4y ago> The actual big problem with Wayland is the unwillingless of the core developers to take advice, but that was a problem back when they were the X11 core developers, and I don't see it changing. Is there a solution to this? Any alternative at all? Like, I agree with this problem and it makes me almost irrationally angry that fundamental software on what should be a flexible and open platform are built by people who are so hostile to basic settings or extensible functionality that they are even more egotistical than Apple engineers :/.
- toast0 4y agoThe fundamental problem is this kind of stuff is hard work and to a first approximation, nobody wants to do it. So if the X11 core developers and the Wayland developers (who are generally the same people) want to do it their way, and their way is better than nothing, we kind of have to deal with their way, don't we? I mean, I can run X11 as long as possible, but sooner or later, I'm probably going to have to deal with Wayland. Especially since I'm also not willing to consider Mac because I've suffered enough, and Windows 11 looks like it might piss me off enough to go back to an opensource desktop. Alternatives probably look like borrowing from other projects that have managed to wrangle things. Android doesn't use X or Wayland, afaik, but I don't know that it makes a good base for a desktop. I believe ChromeOS uses X11 (EDIT: I'm probably wrong, looks like they use Wayland) and their own window management etc, that doesn't help if you don't like X11/Wayland. Otherwise, maybe it's possible to build on top of Windows apis. There's NDISWrapper, maybe someome crazy could build something to use GPU drivers for Windows, and run wine or something. If you look around, you'll see articles about how the portable executable file format for Linux GUIs is windows PE, and it sort of makes sense, a little. That'd be a big transition in expectations though.
- hsbauauvhabzb 4y agoI really like the idea of window isolation - I can run something in a container and not care about it misbehaving unless it’s leveraging a zero day, but I also agree that screen sharing / recording is a fundamental need. Surely there’s a middle-ground, like policy based access?
- stonogo 4y agoMaking a GUI that supports isolating a client is a great innovation. Making a GUI that force-isolates ALL clients is obnoxious. I really think the functionality should be behind a gate like OpenBSD's pledge/unveil tools -- a process (or cgroup etc) should declare that it should be isolated, then launch whatever. Otherwise it should continue to work the way people expect computers to work! But this and other suggestions were disregarded because security.