|
|
|
|
|
by wongarsu
365 days ago
|
|
One clear sign that classifying them as misfeatures is not a consensus view is that every major OS has those features. The security model changed drastically, and with them how those features are presented. For example Windows, being developed to the threat model of the early 90s with some stuff tacked on in the aughts, has powerful APIs for reading window content in a structured way, for getting screenshots and for injecting arbitrary inputs, and only has some tacked-on protections that protect higher-privileged processes from lower-privileged ones (e.g. task manager runs with admin privileges, and you can't inject inputs into it or read mouse events of a cursor over it unless you run with the same or higher privileges). Android was built to the threat model of the aughts with additions in the 2010s and 2020s and has great APIs for reading window contents in a structured way, getting screen content, adding overlays and injecting inputs, but they are gated behind strong capability-based permission systems, review in the most common app distribution system (play store) and require the human to jump through various hoops to confirm this is really their intent. iOS ... restricts a lot of that to Apple, because they don't trust app developers. X.Org does all of that with a permission model similar to that of Windows NT4, without the added restrictions Microsoft added later. That is the misfeature. Wayland looked at that, looked at the ability to make something better in the somewhat disjointed linux/*nix ecosystem and decided to just not have those features rather than have a good security/permission model |
|
As a result, generally the answer to 'how do I do X in wayland' is 'you don't. here's how you do it in KDE, here's the extension you need to install in GNOME to be able to do it, and you're rolling the dice on any other DE'. And that's as a developer, if you're a user there's a good chance the developer has gone 'fuck it, I'm sticking with X11'.
(This fragmentation is even worse when it comes to configuration. e.g. for something like graphics tablets, where there is a relatively complex configuration of how the features on the hardware map to delivered input events, it's left up the the compositor to handle how that's configured. Which means that there's basically no standard way for you to configure your tablet, and there's no complete option: you are either forced into GNOME or KDE because you need some option one supports and the other doesn't, and if you're on a smaller one, you have basically no chance. X11's architecture meant this tended to be much more standardised, and while each DE had its own UI for configuring an input device, you could in practice always fall back to another tool, even if it was usually an arcance CLI, to get what you want.)