Multiscreen is Xorg is kinda mushy so I thought maybe Wayland fixes it, but no it doesn't.
Wayland is now 12 years old and everything is still half-baked.
It quotes an intel developer saying they don't want to do any more stuff on Xorg. But the reality is that as much as I admire intels open source contributions. I don't remember a time where all the features in the Intel driver actually fully worked. But sure, maybe it's an Xorg issue, or they don't know how to do release management.
Either way, Wayland doesn't seem to solve the problems it promised to fix.
Whenever I had a chance to run on nvidia binary drivers, the only things I occasionally missed were some new features, or having to wait a bit longer to update the kernel. Stability was better, drivers more performant, and I don't remember daily fighting with memory leaks.
And X.Org's driver architecture could be replaced completely (in fact, it could be made to run on the same stack as Wayland) - it wouldn't be the first compositing Xserver around, and could use methods that would deal with noticeable to many lag involved in compositor-based UI.
I had a Nvidia Riva TNT2 and later on an Nvidia GeForce. I ran Linux on it.
I had stability issues with the driver, but I solved it the following way: ran one X server with a DE, and another X server with Nvidia's proprietary driver (mostly for games). This way, if I had to kill the X server using Nvidia's driver I didn't lose any work.
If that wasn't enough, all the bloody time there were massive security problems found in Nvidia's proprietary driver. I don't know if that is still the case, cause I switched away to ATi in the 00s, and Intel graphics cards + ThinkPad as laptop. ATi/AMD has come a long way ever since. Their FOSS drivers are stable, and they deliver (see various Phoronix benchmarks).
Many distros do this already. Both for graphics drivers (xf86-video-modesetting) and input drivers (xorg-input-libinput)
There's glamor, but AFAIK it's not as tested as it should, and is still shoehorned into old model.
An example of not following the old model is Xsgi, which was (hw) compositing and quite ingenious in many ways.
I use Wayland daily and have for a few years. It’s clearly gotten better, and I rarely encounter problems. I do have my load of applications still running in XWayland though.
But yes. Support for varying DPI in my multi-monitor setup is handled much better on Wayland than on X11. I would say much better than on Windows too.
Also, can you use xdotool for key input redirection or screen capture programs and stuff yet?
Not sure what you're talking about. Haven't noticed any adverse negative effects.
It's super nice to have a desktop without any tearing though.
> I assume all games run XWayland, which makes it a non-issue.
I don't do PC-gaming.
> Also, can you use xdotool for key input redirection
Not sure what xdotool is.
I'm using sway[1] with libinput. I haven't had a need to use external tools beyond what they support natively.
> or screen capture programs and stuff yet?
I have no issues to do screenshots ad-hoc (in fact, I have keybindings to do this, and throw it right in the wayland clipboard).
I do notice that most Xwayland-based programs which tries to do screen-sharing fails spectacularly though.
Nothing has changed with Wayland except we have a new thing and lots of groups writing compositors. And this is great — Mutter, Kwin, wlroots, Mir — and they will all speak a common protocol for putting stuff on the screen and handing input events. And projects with similar use-cases “desktops” are standardizing on common dbus interfaces for non-display stuff.
This is genuinely so much better than the Xorg monoculture. Wayland’s design has made it possible for lots of different groups to implement display servers and have interoperability because what we had before was “X11 actually means do what Xorg does.”
There’s lots of in-fighting about the scope of Wayland and people that want to make a protocol for putting pixels on the screen also handle “desktop stuff” like audio, screenshots, screen recording, keybindings, input automation, authentication. I think this is misguided because it would effectively turn Wayland into a generic message bus between “apps with windows” and the display server when we already have a generic message bus for every application — dbus.
Right now we have things like:
org.gnome.Shell.Screenshot | org.kde.kwin.Screenshot
org.gnome.Shell.Screencast | org.kde.kwin.Screencast
which after shaking out will be promoted to org.freedesktop.* after standardization. Despite the fact that notifications have been "DE specific" in the same way for years and years nobody seems to complain about org.freedesktop.Notifications.
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.9...
SunOS 4.0 lists "dynamic linking" as new feature, released 1988
https://en.wikipedia.org/wiki/SunOS
AT&T System V Release 3 got shared libraries in 1986
https://en.wikipedia.org/wiki/System_V_Release_4#SVR3
While the first X11 release was in 1987, the fundamental architecture was designed already since 1984, and this architecture includes a heavyweight server that implements things that in most other window systems are done client-side.
Right now there’s a bunch of competing compositors with different use-cases but nothing says it has to be true forever.
A protocol definition could cover multi screen support, requiring implementors to do something sane. Of course one of the reasons that Wayland exists was to cut down the bloat X had accumulated over the years. Given that it is rather surprising that the Wayland spec isn't just an empty page.
Which compositor do you use?
There have been 3 issues I've had regarding it, 2 I'd call minor:
- I haven't found a way to rearrange external displays, though it is theoretically supported
- After a bug in my TV switching to the lowest possible resolution through switching the input in home assistant it would not work with 4K again until after a complete reboot (so it may not even be a wlroots issue)
- XWayland apps are unresponsive in the upper half of the second screen (4K at 1x scaling)
Using mostly native Wayland apps neither of these have been deal breakers for me. Something under-discussed is that virtual desktops are per-screen, which I find quite cool.
So that's my adventure with Wayfire, but I would assume that Gnome and KDE have perfected multi-screen usage on and off of Wayland by now.
[0]: https://wayfire.org/
Seems to be a bit of a dealbreaker for people who want to use 100 percent of their screen instead of only 75 percent.
Also, is there a chance your 4K screen has negative coordinates? It is well known that Xwayland does not react if an output has negative coordinates (or at least partly negative coordinates).
If it's indeed the LCD and not the backlight, pray tell us the model so we don't end up buying it.
You know, catch up to what literally everything else is doing. Windows, MacOS, iOS, Android, etc.. are all exclusively compositor-based window management systems. And they don't have latency issues, as ways to avoid what little latency compositing adds can be avoided in cases when necessary, like front buffer rendering extensions on Android for VR. Literally only X remains stuck in the 90s.
I get it, all these features that used to just be supported by the one Xorg server now need to be supported by individual compositors - but still, it is simply misinformation that "Wayland" is broken because Mutter / Kwin / Sway are incomplete.
A protocol with zero practical implementations is, in practice, broken.
Open source I know is often a work of love, but it's a bit painful that everyone is chasing after new things instead of keeping things that already work working. It's like how there are dozens of js frameworks that have thousands of contributors whereas openssl had one which lead to the infamous heartbleed bug. We need to talk about how the culture of open source is broken in this regard and figure out how to fix it.
Maybe it's time for people to stop whining in the internet and start writing code?
X.org code is there, support it, contribute to it, improve it if you want to.
> infamous heartbleed bug
Yeah. Because real open source is like that: millions are arguing in forums, few write code.
And that's the problem Wayland is trying to solve BTW, by removing quite a lot of obscure legacy which only a few properly understand.
Writing things from scratch is usually good, it allows:
1) To follow modern practices so modern devs can understand the code and contribute
2) To use modern languages and technologies which are inherently more safe and secure (due to better type systems, linters, language design)
3) To get rid of technical debt
Joel Spolsky wrote a good argument to the contrary: https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Any good examples of large projects where a rewrite from scratch has been good?
This is ridiculous. Maybe that's applicable in a very short timescale, but definitely not to the protocol which appeared in 1984.
There is a thing called progress, people invent quite a lot through the years: type systems, patterns, design ideas. Not to mention that hardware has changed quite a lot through the years: X11 was done in the age of terminals and absence of hardware acceleration.
IRIX, OpenGL.
They invented it.
Technical debt i.e. "code that should be refactored, because it was originally implemented in a hurry"? Yes, technically you're right and deleting all of the code is a way to also get rid of the code that should be refactored.
The same way whole-limb amputation is a very effective way to remove nail polish.
More like fundamental design decisions and API's which you can't refactor without breaking compatibility.
I agree that this is not good overall, but it's going to be very hard to convince people to work on not-fun things for free. Some might see it more akin to volunteer work, but the amount of people willing to do this are far outnumbered by the people simply doing things for fun. Too be fair, it is at least pretty great in so far as that they're doing open-source work :)
I check the state of the linux world about once a year still. And obviously keep using it on the servers.
Best of luck to everyone using it for desktop. I totally get why you do it, but it's just not for me right now.
X11 problems explained by Daniel Stone [1]. As I understand there are two parallel architectures, one uses X11 server primitives (xfontsel), another renders on client (fontconfig fc-list etc). It is very confusing.
Upgrades often break things, I'm forced to use brew to install software which leaves files strewn around the file system and regularly seems to have cross package conflicts.
And don't get me started on the hardware - the laptop is excessively heavy and the keyboard is awful (and I don't just mean the touch bar gimmick).
My personal laptop is a Lenovo Carbon X1 and Fedora runs very nicely on it, requiring very little thought put into management if you're running the default desktop (Gnome). I can update the firmware and BIOS from inside Linux, and Lenovo have even started shipping newer versions of the laptop with Fedora pre-installed.
There's massive scope of tinkering with Linux if you want to, but as long as you're careful with the hardware you buy there's absolutely no need to tinker at all if you don't want to.
You either fix them yourself and contribute back if possible. Or switch to distribution where someone still fixes these issues.
I've investigated X.Org caused bug just for two days and since then totally support Wayland development. What we have today is not healthy.
The wayland people replaced that with a half-baked solution because they insisted on boiling the ocean - replacing the entire thing in one go, instead of working piecemeal (which the X protocol was explicitly designed to allow).
Which is a great pity, because now the day of the Linux Desktop is even further off.
> instead of working piecemeal
That's exactly what happened. Do you remember fonts without anti-aliasing? Run xfontsel, that's X11 fonts rendering. Freetype, Fontconfig, Cairo, Pango, HarfBuzz work on client side and push pixels to X Server. Entire rendering model changed, X.Org become compositor. They've faced limits, they've implemented DRI, DRI2 [1].
Now developers decided to make good compositor. And they've done it without disturbing X11 ecosystem, with clean way to port toolkits. Window Managers can't be ported but they can be reimplemented, just look how many compositors people built [2]. It is a miracle.
Linux future is bright. Video drivers moved from X Server to kernel, display configuration parts replaced by KMS, we've got modern font rendering, text shaping, we've got open source AMD GPU driver!
I still use Intel GPU, X.Org and xmonad, but the times they are a changing.
[1] https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructur...
On a 200 dpi display the xfontsel display looks better. :)
The irony.
I run one, which is why to me the irony feels reversed to what you probably meant. It's clumsy, slow and tedious to setup.
There is nothing so special going on in Fedora that can’t be done in other distros. Try an Arch based Linux desktop. You’ll get newer packages and better package management. Manjaro has worked well for me.
[1] https://github.com/ianyh/Amethyst [2] https://github.com/koekeishiya/yabai [3] https://github.com/Hammerspoon/hammerspoon
This is not true. Developers have been working actively on Xwayland, and I believe it can run most of the applications now, even with hardware acceleration. Is that not a clear upgrade path for you?
Wayland compositors provide backwards compatibility with most X11 apps via XWayland, I don't think it's fair to say that they completely disregard compatibility
That's disregard for backwards compatibility to me.
edit: which is not to shit on wayland itself, it's to complain about the general attitude which is like "just don't do that" or "oh that's old, we don't support that"
I've actually used waypipe more often in the last year than I ever used ssh -X, thanks to a shift towards WFH :P It's sometimes useful to be able to run Firefox remotely from my workstation at the office.
It's supposed to fail hard. That isnt just a security hole in X, it's a total lack of security. The notion that any app should be able to monitor or manipulate any other app is archaic and wrong from a security perspective.
That "security" is useless on a Desktop where you run all programs as the same user. If you want a platform to run locked down "apps" that's fine, just don't expect others to be happy with the cost of that "security" when it provides no benefit for them.
Apple is a multi-trillion dollar company. Microsoft and Google are close behind. Of course they can give away their desktop environment away for free. System76 (et al) can’t compete with that. X.org can’t compete with that.
I mean, this is exactly the reason I use Mac, because it ships with a good DE out of the box supported by a trillion dollar vendor. But that doesn’t help people who prefer Linux.
But it bothers me when no clear upgrade path is defined ("drop your stuff" is not acceptable) and a half-hassed incomplete solution is proposed instead, and backwards compatibility is pretty much disregarded.
For what concerns my personal computing, I'll stay on Xorg until XFCE supports Wayland. Then I'll update.