Wayland sucks. I'm sure that it's not Wayland that sucks, but running Ubuntu 18.04 with gnome-wayland is inferior to gnome-x11 in multiple surprising ways, and better in only a few. I've been using gnome-wayland now for about a month, since upgrading to Ubuntu 18.04, and I'm about ready to switch back.
The good:
- In Wayland, I am allowed to switch workspaces with a four-finger swipe on the trackpad. I'm using a MacBook Pro, so my trackpad is actually good, and I've been missing this in X11.
- With Wayland, the machine falls asleep/suspends to RAM much quicker than in
X11. Don't ask me to explain why there is a difference. It is comforting
that the screen backlight turns off immediately, so I don't have to wait to
confirm that it's actually going to go to sleep this time. (The
exceptionally few times it has failed to go to sleep has been when I have
experimented with settings in
powertop
. Fair enough!) - No tearing. Wayland actually delivers on this! But the software is not mature, so, while the animation when switching workspaces does not tear, it is not so easy with video playback. The reason is of course that when falling back to running applications through the X11 compatibility layer, tear-free playback can no longer be guaranteed. So I would have to use a player that supports Wayland, and these are not mature. I'm sorting this as a positive here, because it is straightforward to get the same experience as with X11, plus there is an opportunity to experiment with something new.
The bad:
-
Immature ecosystem: Guake does not respond to a global hotkey, Wayland-supporting video players have buggy rendering, pop-up windows appear in the wrong places and so on.
-
Worse performance. Wayland promises better performance by eliminating some indirections for programs putting graphics on the screen. However, the performance I actually experience seems worse. This is definitely the case for games, such as Factorio, that use the X11 API for getting the graphics on screen. (The actual rendering is of course through OpenGL) The one experience I've had with a game that uses Wayland directly, even though it is a work in progress hobby project, is even worse! I experienced latencies of 3-4 seconds for response to my input. I'm not sure what to make of this other than "The Wayland ecosystem is completely immature".
-
Slow resume from sleep. Yes, that's right. The flip side of suspending more quickly is apparently that it resumes more slowly. When I first bought my Mac, running OS X, it would regularly resume from sleep more quickly than I could open the lid. Newer versions of OS X do this more slowly, and that has been a huge disappointment. Resume times in Linux has varied a lot but these days it is near instant in gnome-x11. With gnome-wayland, it requires 7-8 seconds.
-
Worse input handling. As noted above, there are some input-related things that are made possible in Wayland. However, there is a fundamental problem with the way input events, or possibly events in general, are handled. When the system experiences high load, for example when I'm compiling Rust code, event handling doesn't progress as normal. Consider the situation of a key press: There is a key down event, some time passes, and then a key release event. Depending on the time passed and the key repeat settings, any number of key press events are generated. When my system experiences high load, the key release event regularly gets pushed back so even when I just press a key for regular quick typing, I can get many repeated keys printed. Or when I switch tabs in Firefox with the keyboard, it ends up jumping many tabs instead of one. Or when I close a tab, all of them disappear. It is similar for mouse movement events. Suddenly the cursor jumps while moving.
Full disclosure: I have configured my keyboard for really low delay and high repeat rate, but this has never caused a problem in any other system.
In a poetic turn of events, this is what happened when I tried typing in "Wayland sucks" for the title. This time I think I will let the error stand.