The state of Wayland, 2013-01-26

Wayland is now mostly usable, via backward compatability with the X protocol (XWayland). Native usability is mostly down to applications migrating to GTK3 and Qt5.

Version 0.99 was released on 2012-10-15, and was the last API break. Plans are to not break the API in the future. Latest version is 1.0.5.

XWayland has a segfault bug, and has not been committed upstream (to xorg).

Ubuntu, Fedora, and Gentoo now have the Wayland backend of GTK+ enabled.

Qt5 was released 2012-12-19, but I don't think there are any official distro packages of it yet.

Drivers

The reference compositor (Weston) works with Intel, Radeon, and Nvidia (Nouveau) open source drivers. Nouveau on DRM requires kernel version 3.7-rc3.

XWayland

XWayland, the ability to run X clients within Wayland, is mostly working. Firefox, chromium, and supertuxkart appear usable. There are DDXes for Intel, Radeon, and Nouveau (Nvidia). A software implementation exists but is more glitchy.

Toolkits

Clutter support is complete.

EFL support is complete except for selection.

Qt5 support is complete, including client side decorations (CSD).

GTK+ support is complete except for CSD, selections, dnd and popup placement, since v3.4.1, and added support for Wayland v1.0 in v3.6.3.

So any application should work natively with Wayland as long as it uses one of these four toolkits, and it doesn't call any Xlib functions. Unfortunately, a number of GTK+ applications do call Xlib, through gdk_x11_* functions, and they need to be wrapped in build-time and run-time backend checks.

And while GTK3 was released over a year ago, Qt5 had its first alpha release in April 2012, and its first Beta in August 2012. While many GTK+ applications haven't made the conversion yet, presumably Qt applications, for the most part, haven't started.

Browsers

Firefox and chromium work via xwayland (backward compatability with the X protocol).

The only web browser I've tested that works natively is qtwebkit, which is included with the Qt5 source. Weston occasionally crashes when running it. The snowshoe browser also works with Qt5.

webkit-clutter apparently works on wayland

The webkitgtk browser doesn't work. As expected, the midori browser based on webkitgtk doesn't work.

Firefox has a long way to go.

Chrome / chromium may have worked, but Wayland support was completely removed on 2012-04-07. Yan Wang announced some work on it on 2012-05-04. Update 2012-06-06.

Opera hasn't started working on Wayland support yet.

Terminals

weston-terminal is actually pretty decent.

vte, based on gtk, works fine.

gnome-terminal works.

Germinal works - VTE-based GTK+3 minimalistic terminal

Hawaii desktop terminal works with Qt5

I haven't tried clutterm, which uses Clutter, mostly because it says "This is a work in progress and it's far from ready for every day use."

QTerminal uses Qt, but is still using Qt4.

Terminology for EFL was started in June 2012. It probably works.

Other Applications

What works with Wayland? - list of applications that do and don't work.

Of the 22 gtk applications I tried (html5 theora video), 9 worked, and 13 didn't due to using Xlib calls. 41% worked (after I rebuilt GTK with --enable-wayland-backend).

Distributions

(Libraries indicate Wayland backend is enabled.)

RebeccaBlackOS is a live ISO that includes Wayland. It's generally kept well up to date.

There is also a Fedora based Wayland Live CD.

A port to Android is in progress, by Pekka Paalanen, for Collabora.

Desktop Environments

KDE Plasma Workspaces (KWin) has "pre-alpha" Wayland support.

Mutter (GNOME Shell) seems to have some support in git branches, but little information available.

Xfce is considering Wayland.

These have not seen work in a long time.

Wayland Protocol

The protocol itself still needs work: http://cgit.freedesktop.org/wayland/wayland/tree/TODO

Moving this list to bugzilla.

Open Bugs

The Nvidia proprietary + cairo-gl problem:

Any one of these would've fixed the problem, the first one did:

To Do

Things I, personally, feel are most noticably missing.

Split xwm to a separate client, in xwayland - in progress by Tiago Vignatti. XWayland / Weston is occasionally segfaulting. Submitting XWayland upstream so it can be included in distributions. Terminal clipboard: GTK+: Wayland and x11 backends simultaneously enabled is broken. Workaround disables GTK/Wayland clipboard. weston-terminal works with ctrl-shift-c, ctrl-shift-v. Clipboard works with gnome-terminal if run as an X client (but not native). XWayland popup menus don't work. Window decorations for GTK+ and XWayland (buttons). Thread safety. "event dispatching is thread safe" as of v0.99 - anything else needed? Key bindings for launcher items? (launch terminal with ctrl-alt-t) Native major web browser (Firefox bug). Native LibreOffice. Network transparency. Native mplayer support. (done, but not committed?) Native WINE support. Native blender support. Hardware independent, hardware accelerated DDX for XWayland. Of the DDXes that exist, they are either hardware dependent (Intel, Radeon, Nouveau), or software only and unaccelerated (WLSHM). It would be nice if one were created that were hardware independent and hardware accelerated.

Done

Old Statuses

Reciprocal links:

reddit.com

lwn.net

oneopensource.it (Italian)

linuxin.dk (Danish)

jupiterbroadcasting.com

opennet.ru (Russian)

phoronix.com

Wayland mailing list