Wayland State
From Wiki
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.
Contents |
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.
Perl GTK3 bindings exist. They have been packaged for Fedora.
SDL support is rough. Latest sdl with wayland support is soreau sdl. Before running any applications, please:
export SDL_VIDEODRIVER=wayland
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.
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.
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.
wlterm is probably good.
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.)
Distro. | Release | Wayland | GTK+ | Qt | Clutter | COGL | EFL |
---|---|---|---|---|---|---|---|
Arch | No | ? | ? | ? | |||
Fedora | Rawhide | No | ? | ? | ? | ||
18 | No | ? | ? | ? | |||
Gentoo | No | ? | ? | ? | |||
Exherbo | No | ? | |||||
Debian | Experimental |
0.85 (update requested) | No | ? | |||
Ubuntu | Raring | 1.0.5 | No | ? | ? | ||
Quantal | 0.95 | No | No | ? | ? | ||
Precise | 0.85 | No | No | ? | ? | ||
Maui | 1.0.5 from Arch | Yes | Yes | No | No | No |
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
Enlightenment - Wayland clients "...render ;) but cannot handle keyboard input yet. Fixing that up now" - 2013-03-11
The rest have not seen work in a long time:
KDE Plasma Workspaces (KWin) has "pre-alpha" Wayland support.
Mutter (GNOME Shell) seems to have some support in git branches, but little information available.
Wayland Protocol
The protocol itself still needs work: http://cgit.freedesktop.org/wayland/wayland/tree/TODO
Open Bugs
- GTK+: Bad errors for missing Wayland dependencies
- WebKitGTK+: Enable wayland support.
- Gnome-Terminal: Wayland support
- Midori: Wayland support
- Cairo: Wayland gtk clients broken by 38a242a: spans,image,gl: Add fast-path for simple copies Fixed 2012-05-04 by Chuanbo Weng.
- Debian: Enable GTK+ Wayland backend
- Clutter webkit: won't build
- LibreOffice: Wayland support - currently uses xcb (X protocol)
- Weston: XWayland has some major problems
- Totem: Add wayland support. (re-opened)
The Nvidia proprietary + cairo-gl problem:
Any one of these would've fixed the problem, the first one did:
- GTK+: Remove cairo-gl dependency from wayland backend. (done, 3.5.1 release)
- Cairo: Dynamically load libGL in cairo-gl
- Debian packaging: Add support for versioned provides. This is 15 years old.
- Nvidia's proposed change to eglibc.
Wayland bugs on the GTK+ bug tracker.
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. Glamor is often mentioned as a good way to do this.
- Split libgl (OpenGL) from glx. Currently, using full OpenGL pulls in X libraries.
<krh> you keep libGL with just the GLX code, make it link to libOpenGL
<krh> libOpenGL is just the GL functions, like libGLESv2
<krh> new code that uses EGL+OpenGL will link to libOpenGL, old apps can continue linking to libGL
Done
- Window decorations for Qt (buttons).
- XWayland keyboard input in Firefox.
- GTK+: Wayland and x11 backends simultaneously enabled is broken. - Workaround committed, in 3.4.1 release.
- GTK+: Defaults to Wayland backend over X11, breaking X - Commited to master and 3.4, will be in 3.4.2 and 3.5.1 releases.
- Wayland currently only works on Intel.
- XWayland resizing windows. (fix)
- XWayland Nouveau DDX support (~100 lines, done for Intel and Radeon). (fix)
- Radeon and WLSHM DDXes need to be updated to handle xserver changes. (Intel DDX patch) (last xserver commit compatible with Radeon and WLSHM) (Radeon fix, wlshm fix)
- Video capture. (Partially done.) (done, README)
- WLSHM DDX needs s/hosted.h/xwayland.h/.
- Weston has a build dependency on libvpx which has a build problem.
Old Statuses
This page surely has errors and omissions. Please create an account, contact Darxus for write access, and fix them.
Reciprocal links:
reddit.com
lwn.net
oneopensource.it (Italian)
linuxin.dk (Danish)
jupiterbroadcasting.com
opennet.ru (Russian)
phoronix.com
Wayland mailing list