Took place stable release of the protocol, interprocess communication mechanism and libraries Wayland 1.20… The 1.20 branch is backward compatible at the API and ABI level with the 1.x releases and contains mostly bug fixes and minor protocol updates. Composite server Weston, which provides code and working examples for using Wayland in desktop and embedded environments, is evolving in a separate development cycle.
Major changes in the protocol:
- Official support for the FreeBSD platform has been implemented, tests for which have been added to the continuous integration system.
- Dropped support for the autotools build system and now uses Meson instead.
- The “wl_surface.offset” feature has been added to the protocol to allow clients to update the offset of the surface buffer independently of the buffer itself.
- Added the “wl_output.name” and “wl_output.description” capabilities to the protocol to allow the client to identify the output without being bound to the xdg-output-unstable-v1 protocol extension.
- A new “type” attribute has been introduced in the protocol definitions for events, and events themselves can now be marked as destructors.
- Bug fixes have been carried out, including race conditions when removing proxies in multithreaded clients.
Wayland-related changes to applications, desktop environments and distributions:
- Changes have been made to XWayland and the proprietary NVIDIA driver to provide full hardware acceleration support for OpenGL and Vulkan in X11 applications running with the (Device-Dependent X) XWayland DDX component.
- Master branch across all Wayland repositories renamed from “master” to “main”, since the word “master” is considered politically incorrect lately, reminds of slavery and is perceived as offensive by some members of the community.
- Ubuntu 21.04 migrated to the default Wayland.
- Fedora 35, Ubuntu 21.10, and RHEL 8.5 add the ability to use a Wayland-based desktop on systems with proprietary NVIDIA drivers.
- The release of the Weston 9.0 composite server was formed, in which the kiosk-shell appeared, which allows you to separately launch individual applications in full-screen mode, for example, to create Internet kiosks, demo stands, electronic signage and self-service terminals.
- Canonical has published a full-screen Ubuntu Frame for Internet kiosks using the Wayland protocol.
- The OBS Studio streaming video broadcasting system supports the Wayland protocol.
- GNOME 40 and 41 continue to hone support for the Wayland protocol and the XWayland component. Allowed to use Wayland sessions for systems with NVIDIA GPUs.
- Continued porting the MATE desktop for Wayland. To work without being tied to X11 in the Wayland environment, the Atril document viewer, System Monitor, Pluma text editor, Terminal emulator and other desktop components are adapted.
- Stabilized a KDE session using the Wayland protocol. The KWin compositing manager and the KDE Plasma 5.21, 5.22 and 5.23 desktop provide significant improvements to the Wayland session. Fedora Linux builds with the default KDE desktop translated to use Wayland.
- Firefox 93-96 includes changes to resolve issues in Wayland environments related to pop-up handling, clipboard, and scaling on different DPI screens. The Firefox port for Wayland has been brought to general parity in functionality with the X11 build when running in the Fedora GNOME environment.
- Published a compact custom frontend based on the Weston – wayward composite server.
- The first release of labwc, a composite server for Wayland with features reminiscent of the Openbox window manager, is available.
- System76 is working on a new COSMIC user environment using Wayland.
- Sway 1.6 Custom Environment and Composite Server releases are now available Wayfire 0.7using Wayland.
- An updated driver has been proposed for Wine, which allows you to run applications using GDI and OpenGL / DirectX through Wine directly in a Wayland-based environment, without using the XWayland layer and getting rid of Wine’s binding to the X11 protocol. The driver adds support for Vulkan and multi-monitor configurations.
- Microsoft has implemented the ability to run Linux applications with a graphical interface in environments based on the WSL2 (Windows Subsystem for Linux) subsystem. The output uses the RAIL-Shell composite manager, which uses the Wayland protocol and is based on the Weston codebase.
- The method of developing the wayland-protocols package has changed, which contains a set of protocols and extensions that complement the capabilities of the basic Wayland protocol and provide the capabilities necessary for building composite servers and user environments. Replaced “unstable” with “staging” for protocols to smooth out the stabilization process for protocols that have been tested in production environments.
- A protocol extension has been prepared for Wayland to restart the windowing environment without stopping applications, which will solve the problem with the termination of applications in the event of a failure in the windowing environment.
- Mesa has added the EGL extension EGL_EXT_present_opaque required for Wayland. Fixed problems with displaying transparency in games running in environments based on the Wayland protocol. Implemented support for dynamic detection and loading of alternative GBM (Generic Buffer Manager) backends to improve Wayland support on systems with NVIDIA drivers.
- Continues development of KWinFT, a fork of KWin focused on Wayland. The project also develops the wrapland library with the implementation of the libwayland binding for Qt / C ++, continuing the development of KWayland, but without the Qt binding.
- The Tails distribution has outlined a translation of the user environment to use the Wayland protocol, which will increase the security of all graphical applications by improving control over how applications interact with the system.
- Wayland is enabled by default in Plasma Mobile, Sailfish, webOS Open Source Edition, Tizen and AsteroidOS mobile platforms;
- To test the work of KDE, GNOME, Enlightenment, Wayfire, Liri and Sway, a special Live distribution is released on top of Wayland Rebecca Black Linux.
Recall that Wayland is is a protocol for interaction between a composite server and applications working with it. Clients independently render their windows in a separate buffer, transmitting information about updates to the composite server, which combines the contents of the buffers of individual applications to form the final output, taking into account possible nuances, such as overlapping windows and transparency. In other words, the composite server does not provide an API for rendering individual elements, but operates only with already formed windows, which allows you to get rid of double buffering when using high-level libraries such as GTK and Qt, which take over the work of arranging the contents of windows.
Wayland solves many of X11’s security issues by isolating input and output for each window, preventing the client from accessing the contents of other clients’ windows, and preventing the interception of input events associated with other windows. Currently, support for direct work with Wayland has already been implemented for the GTK, Qt, SDL libraries (since release 2.0.2), Clutter and EFL (Enlightenment Foundation Library). Starting with Qt 5.4, the QtWayland module is included with the implementation of components for running Qt applications in the environment of the Weston composite server developed by the Wayland project.
Interfacing with hardware in Wayland / Weston, such as initialization, video switching (drm modesetting) and memory management (GEM for i915 and TTM for radeon and nouveau) graphics cards can be done directly through a kernel-level module that allows dispense with superuser privileges. The Weston composite server can run not only using the Linux kernel DRM module, but also on top of X11, another Wayland composite server, framebuffer and RDP. In addition, projects are being developed to provide work on top of the graphics stack of the Android platform.
The Weston project is developing one of the composite server implementations. Any other product that supports the Wayland protocol can also act as a composite server. For example, work is currently underway to provide support for Wayland in KWin. In its current form, Weston has already gone beyond the set of examples for testing the Wayland protocol and can acquire functionality through plugins and add-ons. Custom skins and advanced windowing functions are proposed to be implemented in the form of external backends to Weston. A DDX component is used to support the execution of common X11 applications in a Wayland-based environment. XWayland (Device-Dependent X), similar in organization to Xwin and Xquartz for Win32 and macOS platforms.