The reality of Wayland input methods in 2022 (2022)
nimfsoft.art
nimfsoft.art
Oh Lord no. Clickpads are still basically unusable with libinput. There's a reason it hasn't actually displaced synaptics.
Just recently moved to Hyprland and similar experience. Barely had any hiccups and switching to a non-english layout such as Arabic works like a charm.
Perhaps maybe our systems are just ideal? For the record I'm using a thinkpad which generally has good support but even on my Lenovo G505 it worked perfectly.
You can right-click-drag, and you can middle click. macOS doesn't support either one of these, and Windows only supports assigning a bottom-right quadrant of the trackpad to right-clicking.
It's fine in Sway or KDE, as they have scroll sensitivity settings.
Oh, I got bitten by that actually. I ended up just configuring Firefox since that was the main app I used, but most apps aren't Firefox and don't have settings for things that they would expect to be handled by your WM/DE/DM.
GTK may have other scroll issues as well (I recall seeing some stuff about that, though I don't remember the details), but there is definitely stuff the compositor can do.
GTK works through a bunch of heuristics and in-built multipliers, but the fundamental problem is that scroll effect depends on the “weight” of the content itself — kinematic scrolling is unfortunately quite missing from linux desktop, AFAIK. But do correct me if you know better, I’m not too well versed in that.
Screen tearing is something that simply shouldn't exist by default. A person should be able to count on its absence, like a person should be able to count on a basic USB keyboard working without any headaches.
Now I'll brace myself for the "I've never noticed screen tearing" from people whose brains run on a different refresh rate than mine does.
It was such a relief the first time I used Mac OS X. Finally a unix that renders to the screen without artifacts.
It didn’t help that the drivers for everything were closed course, but even with perfect drivers X11’s design can’t deliver perfect frames.
That was one of the reasons I used macOS too. Not for artifact-free rendering but for the fact that it's a real production-ready desktop OS with first-party app support from most companies, while being a true Unix with all the powerful Unix capabilities, like being able to run Valgrind and etc. without nesting virtual machines.
Similarly, nothing says you need to request a redraw when moving a window instead of redrawing it from backing store - but at some point backing store became useless in X.Org even if you explicitly try to program its use.
I'm actually pretty sure this is a thing. I have a dissociative disorder and sometimes the "refresh rate" of my senses seems to go down. I have no idea why or how, but it's really weird to literally experience reality feeling like a slideshow.
But other times I can detect any flickering lighting, so I dunno.
Here's another thing, which proves that directly addressing tearing is false dharma: it gets better with higher refresh rates. Having higher Hz is awesome, and it's improving the issue to boot! It's like antialiasing. You're rendering stuff multiple times, taking enormous performance hits, sometimes now even using semi-sentient AI to smooth the jaggies out... when it turns out that the jaggies get better when you increase your resolution. False dharma: trying to live the lie of no jaggies on 768p @ 43 FPS; TRUE DHARMA: accepting and advancing your computerized existence on 4K @ 53 FPS. Same with tearing and refresh rate.
Also??? These days, adaptive sync (on the monitor hardware level, NOT software driver level) completely eliminates tearing. Another dharmically truer solution.
Also, while you're so hung up on tearing that you'd leave X11 for Wayland, you've clearly never experienced the awesomeness of xdotool, which isn't available on Wayland. You're not truly living. You're trapped in a gilded cage, satisfying merely the basest petty natures of man.
Where do you live?
Both of us experienced issues with games being inconsistent in frame times, black rectangles over electron apps like spotify/discord, for him his multi monitor setup was somehow broken on wayland but fine with X.
Chromium apps in general appear to have varying levels of issues, some applications don't support wayland at all, most can run with the xwayland which IMO mostly defeats the purpose especially when it's still not seamless.
We've both switched to X and no longer have any of the above issues. That's not to say the desktop experience on X is seamless of course, but the above issues were all solved.
I'm really under the impression that people who use wayland either don't use a wide range of applications (which is perfectly fine!) and/or are used to putting up with "typical linux issues" and accept the quirks.
I remember when wayland came out and was supposed to solved the "fragmented/bloated mess of xorg" but it literally just appears to have been a half-baked solution for ~15 years.
IMO the issue with the "linux desktop" has always been consistency. You don't have to worry about adding launch arguments, compositor support, graphics drivers, AMD/Nvidia, wine, broken audio/networking when you do an update, etc. MacOS/Windows "just work" - at least with far more consistency.
And yes, I run X, Wayland is too restrictive currently. I should give it another try some day though.
Funny, it's always been the other way around for me.
My Ubuntu 22.04 at work keeps randomly switching the default audio output to the headphone jack of the machine and off my Bluetooth headphones leaving me without sound in my headphones until I go to the settings and switch it back to Bluetooth. Never had such issues with Windows, it's always been rock solid in this regard.
Would you mind sharing the exact audio issues you had with Windows?
HP Spectre x360 laptop (2020), factory-installed Win10: audio just dies sometimes. The Realtek's control panel (also factory-installed) periodically crashes. Funnily, booting a Linux live from a flash drive gave audio that worked without said problems. The laptop was later replaced with an updated one, when its graphics hardware visibly failed. The replacement did not have the audio problem (IDK if it was a different audio chip revision, firmware, or driver), but the Realtek control panel was still unstable.
(Visually Win10 has at least three UI toolkits that can barely agree on colors, and cannot agree on fonts or the shape of controls. Under X, I have all GTK2, GTK3, Qt5, Qt6 programs use the same fonts and a common theme, with controls, if not exactly uniform, at least having common colors, shapes, and sizes.)
Well there's your problem, or more precise HP's problem, not Windows's problem. Don't use vendor crapware on your machine.
Always install a fresh copy of windows of a USB drive, not the recovery partition which holds the vendor crapware.
The built in windows audio switcher and audio drivers works just fine no need to use third party apps.
Wouldn't it be installed windows update anyway? I'm pretty sure windows installs whatever software is in it's repo the moment a device is discovered by default?
On a fresh install Windows update only install the corect drivers, no vendor apps.
The Realtek app is put there by the vendor (HP/Dell/Lenovo) from the factory in their spin of Windows. If you install a fresh vanilla copy of Windows from Microsft's website you won't have any of that nonsense.
Nvidia will include it's control panels and stuff, same with intel graphics AFAIK?
A little old but https://www.bleepingcomputer.com/news/security/razer-bug-let...
I'm like 95% sure intel graphics does this with integrated graphics
It's possible to achieve what you wrote, but the complexity of doing that is borderline impossible. Need to set up group policies, or use custom software, to block installation of specific hardware devices, and specific Windows updates.
Example: https://h30434.www3.hp.com/t5/Notebook-Software-and-How-To-Q...
I can’t even count the number of times windows reinstalling the sound driver or whatever it does at runtime, requiring a reboot.
I think people are very likely to blame the software layer even when they use subpar hardware — no software will run fine on shitty hardware, and the very inconsistent reports from basically any OS is more than likely the result of some underlying, failing hardware components. This also mostly explains why OSX is considered more stable by some — it is much easier supporting 10 different configs, than all the others.
I think Linux has undergone a huge improvement in this regard and actually has the best, general support for any hardware nowadays — it may happen that a given driver is better/only works for windows, but the mainline has shifted to Linux now.
I might try wayland again, I'm just really frustrated with it. It's always been advertised to be better then X, and 15 years in it's still a rocky mess (as of ~6 months ago).
This isn't 100% waylands fault - but nvidia cards seem to add extra issues. I need CUDA support so AMD is not an option.
Well, there you go. NVIDIA for the longest time didn’t support linux, period. They add proprietary binary blobs to patch xserver to work. It’s no surprise that some normal userspace program can’t do something the kernel can’t do either.
As you later point out more explicitly, there is no way around that.
Linux is the epitome of bazaar style development - it has endless positives, but a huge drawback is not having a consistent direction, nor any real force behind any of the directions.
Apple can just say that they will now support a new compositor, if you wanna stay in business, change. And it will happen. But that’s not a technical thing at all, wayland’s first 10 years is very different from the next 5 one — since it has become mainstream now, its support and hands working on it will result in exponentially more improvements. A new direction needs critical mass, and wayland has only recently acquired that, imo.
Eh, what? That's not at all common
But the article is specifically about incompatibility of input methods among different DEs: Gnome, KDE, wlroots-based environments such as Sway and Hyprland.
After many years, ibus still doesn’t work with wlroots, because ibus supports input method protocol v1 and wlroots supports v2: https://github.com/ibus/ibus/issues/2182
The list of recommended IMEs on Sway are all WIP: https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway#...
There is even v3. Kitty refused to implement v3 because v3 appeared even more unstable: https://github.com/kovidgoyal/kitty/issues/2814#issuecomment...
The wayland input method protocol is stuck at v1, and DEs/applications disagree about which versions to support. That’s why it’s problematic.
Have we (those who are not paid to work on this) "followed the money?"
The glacial Wayland rollout to usability (it was AT LEAST a decade, don't try to fight me on this) is just so odd to me; to the point that I feel like it would be useful to examine the most powerful entities in this.
It's just really hard for me not to at least consider: Was the push for Wayland in the hands of entities who perhaps didn't have a particularly strong interest in a classically useable desktop? As in, a combination of entities who really have no interest in a Linux desktop (Ubuntu, who lets be real, has caved to Microsoft) or entities that are trying to hard to be cool and in doing so broke stuff that just works? (Lookin' at you, gnome?)
We already do, it's called Android.
You answered your own question.
The Linux community's (read: most graybeards') love for Linux is inversely proportional to their love for a GUI. The terminal is still the One True Way(tm) of doing anything serious in Linux.
Consider that among the hottest topics in Linux in the year 2023 is still the holy war between vi vs. emacs, nearly a quarter of the way through the 21st century. The people in charge of Linux (be it literally or figuratively) do not give a damn about GUI, which includes desktops. Using a mouse is heresy, a touchscreen is sacrilege.
That tickled my sense, and I looked up. Windows added dark mode in 2017.
The stupid thing that GNOME et al are doing is trying to outsexy Apple or some nonsense.
How do you expect the much bigger former group would work on your new thing? They wont, unless it starts spreading. And it can’t really spread unless it is being supported by all the community. That decade was mostly a build up — once it has the critical mass, improvements will be exponentially greater.
Anyone saying that it is a drop because it already took a decade is just not familiar with how any of open source/bazaar projects work.
A lot of people say that X is slow because it’s a communication method, and it’s also outdated, buggy and difficult to maintain. However, from what I know about Wayland, Wayland is also a communication method, and Wayland is weaker than X in terms of functionality, so it is not suitable for desktop use. Although it has been 14 years since it was released, there is little progress in protocol development, and there are a lot of bugs in implementations. Moreover, the performance of the implementation is no different from that of X, the quality is below expectations, it is unstable, and the development maturity is low. Also, Wayland input method v1 and wlroots input method v2 are technically and functionally regressive to XIM that appeared in the 1990s. Simply put, Wayland in 2022 is more technologically obsolete than X. Many people have been interested in Wayland and have been cheering for it, but Wayland seems to have no hope. How can there be no books published on the subject of Wayland programming in 14 years? If each Linux distribution accelerates the migration to Wayland, users will ditch the Linux desktop. I look forward to seeing a new display server to replace Wayland.
Thank you"
Mhmm, this is what will push users from the Linux desktop. Not the billion other usability issues. I think this is a case of someone caring a whole heck of a lot about a small thing.
His second error is daring to assume the Linux community cares about GUI.
Until advice and tutorials stop beginning with "Open the terminal..." there is no such thing as Linux desktop.
Personally I hate the macos desktop and window management, and prefer Linux on a few others things, so I'll keep using it as long as I can.
Just my personal observation here, but I don't see a lot of value in programming books any longer due to how often things change. Usually I'm looking for official documentation or recently updated blog posts on the Internet.
Too much ink has already been shed around the faults of Wayland, but I'll put it pretty simply - The people on Wayland have no business designing user interfaces and are questionable at developer interfaces.
Especially that the people on Wayland are literally the ex-maintainers of X.
While I don't like making predictions, if I had to guess I'd guess that in a decade's time the OpenBSD team will be maintaining the upstream display server for most Linux distros just like they maintain the encrypted shell and the BGP server for them.
I have a Compose key (RAlt on my current laptop). It behaves inconsistently across apps, because that stuff is implemented in each app, and they’re not implementing the same functionality.
Some ambiguous sequences are interpreted one way in one program (e.g. <-> = ↔ in Alacritty) and another way in another (e.g. <-> = ←> in Firefox). Order and whether includes are involved may or may not influence these things.
And I’ve come across one or two programs (generally your do-things-from-scratch, pure-canvas sort of things) where the Compose key just didn’t work at all. And I’ve encountered more than one or two web apps where the Compose key is basically broken.
(In general, Compose seems to be handled the same way as IMEs—speaking as a user, not a developer. Pressing Compose in GTK apps inserts an underlined ·, which is then replaced with the characters of the sequence as you type, underlined, which is then finally replaced by the resolved sequence when you’re done.)
All this was a problem under X. It’s still a problem under Wayland. It’s not a problem under Windows with WinCompose: it handles it all, not each app; so you don’t get any progress indicator (no underlined · or anything, it just consumes the keystrokes until you finish a sequence), but it all behaves consistently between apps, so long as they run as the current user. (That is: “run as admin” and WinCompose’s hooks don’t apply so the Compose key just doesn’t work.)
As for input methods in general… ugh, I recall the trouble I had under i3 with xim and ibus and whatever the other *im things were, it was even more inconsistent than I think I’ve observed under Sway. I don’t remember altogether why or what I did, and I haven’t tried doing exactly the same thing, so maybe it is actually about as bad as ever. But I do know that I’m generally finding a much better experience of input-related stuff under Sway than under i3. I haven’t had to tweak GTK_IM_MODULE or QT_IM_MODULE or XMODIFIERS environment variables or whatever other things for years.
Hmm… I also remap Caps Lock to Backspace, and I’ve noticed a couple of apps (e.g. Chromium, no idea if XWayland use is a factor) failing to handle repeat on that key. Little niggles like that aren’t uncommon, again I think there’s too much being left to the apps rather than being handled by the compositor or whatever.
What is the problem under X? I set the compose:ralt xkboption for the server and the clients don't even have to know about it.
Another highly misleading aspect is pointing out how many years Wayland has been in development. It's true, but it's not like progress has been linear. A vast majority of the Linux desktop ecosystem has been on NVIDIA graphics cards. I reckon Google probably has one of the largest deployments of Linux workstations internally and I believe they've only just begun the transition into Wayland. Thus, it should not be surprising that say, Chromium, has been behind on Wayland support.
While I empathize with people who think that the Wayland transition has been very expensive and slow, I don't really know what the alternative is supposed to be. There WERE and ARE some competing options. There was DirectFB, Mir. Arcan still exists. Probably others. Wayland gained mindshare as the baseline protocol for windowing, and here we are.
Will it fix everything wrong with the Linux desktop? Well, no. However, the painful irony of this post is that practically nobody uses XIM anymore due to limitations, they use out-of-band input buses. So each toolkit has its own plugin architecture for input buses, and then each input bus needs to have plugins for each toolkit, and you need to have the input methods themselves ported onto these. Note that you can also still use this approach if you want to in Wayland, especially important since Qt has been slow to adapt to protocol evolution lately.
All I can say is, it ain't going to be finished tomorrow, but a lot of what Wayland does really is architecturally a step in the right direction. There are some inherent downsides to the approach, but it also TODAY, right now, solves a lot of practical problems that users face that are hard blockers.
Source? Nvidia's proprietary, closed drivers and the moving target that comes with that means I avoid Nvidia graphics hardware at all costs and I'd thought it was widely known their cards aren't great if Linux is the primary use for your hardware. (Linux is my daily driver and I also develop on/with it, but I don't game at all)
It is already quite widely known that Nvidia is not necessarily great for Linux desktops. I know people who bought entirely separate AMD graphics cards just to drive their display even if they still needed the Nvidia GPU for compute.
It's usually possible to get Nvidia displays working, but the experience isn't nearly as good as with AMD.
(I have not used NVIDIA on Linux as a daily driver for five years. I tried it again when the open source kernel driver came around, but quickly switched back after realizing it still wasn't stable enough in Sway or KDE.)
[1]: https://store.steampowered.com/hwsurvey/Steam-Hardware-Softw...
If there's any strong evidence that NVIDIA still isn't winning in Linux desktop marketshare, I'd certainly be interested to hear it, and it would be news to me. I can imagine Intel technically has a lot of marketshare due to laptops, but then again, Intel and NVIDIA users are hardly mutually exclusive on laptops, either.
I'd pay for things to get better here. I desperately hope that Vulkan as an option for compute can mature and compete with CUDA, but I also think that to do so, quite an ecosystem will need to be built up around it, even if the API and drivers prove sufficient to work as a solid runtime.
I got it working for awhile, but after an update it stopped. We mostly switched to meet, and I stopped caring. If I need to share my desktop in zoom, I just drop from the meeting and rejoin from chrome instead of the app.
Anyway: Zoom 5.11.10 is working fine for me in all regards so long as I run it under XWayland. My ~/bin/zoom:
#!/bin/sh
export WAYLAND_DISPLAY=
exec /usr/bin/zoom "$@"
I believe a shell alias would also work if that’s how you run things.Minor suboptimalities in its window management and UI scaling compared to native Wayland under Sway, but nothing big, except for it only handling input and screen updates around once a second if you have any window (except the main one for some reason—but settings, a meeting, chat, participants, they’re all affected) open but not visible (e.g. as an inactive tab—tiled or floating is fine). Oh, and that I get REPLACEMENT CHARACTER from typing astral plane characters with my Compose key, which strongly suggests stupid UTF-16 stuff and I can’t remember if that happens under native Wayland anyway. Or the hidden window problem.
If what is claimed here is true (wayland is a bad protocol) that might help explain the slow development.
I mean hackers might not like doing the boring stuff, but they'll do even the boring stuff on a project that's exciting, technically innovative or excellent, etc.
(And before you slag off Red Hat, remember that they are the Atlas holding up the entire Linux userland ecosystem for the past couple decades or so now.)
Distros still ship token ring support; they're not going to literally "get rid of" X either.
Will GTK 5 not support X? Possibly! I don't really care though. I pretty much just use 2 as it is when I have to use GTK. But GTK and QT still support DirectFB, which is almost 2 decades old at this point. X isn't going away.