After eight months of development, the stable release of the Wayland 1.25 protocol, interprocess communication mechanism, and libraries has been released. The 1.25 branch is backwards compatible with the 1.x releases at the API and ABI level and contains primarily bug fixes and minor protocol updates. The project's work is licensed under the MIT license. The Weston reference composite server, which provides code and working examples for using Wayland in desktop environments and embedded solutions, is being developed in a separate development cycle.
The main changes in the protocol:
- Documentation has been converted from DocBook to mdBook (Markdown) format.
- The Wayland XML dialect, content update model, and color management capabilities are fully documented.
- Added new attribute "frozen" for interfaces with multiple parent interfaces.
- Added a new wl_surface.get_release request for receiving notification of the release of a buffer attached by the client via wl_surface.attach. Unlike wl_buffer.release, wl_surface.get_release's notification is tied to a specific rendering moment.
- Added the wl_display_dispatch_pending_single() function, which allows you to retrieve and process only one event from the event queue, rather than all accumulated events, as wl_display_dispatch_pending() does.
- Provided color highlighting of WAYLAND_DEBUG debug output.
Protocol extensions added since the release of Wayland 1.25, which complement the core Wayland protocol and are supplied in a separate Wayland-Protocols set:
- xx-input-method — Allows applications to implement text input methods for composite servers and form the entered text, which can be used, for example, to create virtual keyboards and IME layers (Input Method Editor) for processing input.
- xx-text-input — allows composite servers to implement input methods and send text to applications. The protocol standardizes interaction between composite server and applications, and allows you to manage such capabilities as transmitting input text, handling input focus change events, and taking into account the specifics of input fields (language, text selection, content type).
- The color-management-v1 and color-representation-v1 protocols have been improved, providing capabilities for color management, HDR support, and defining the color representation of a Wayland surface.
The most notable events related to Wayland that have occurred since the last issue was published:
- GNOME 50 removed X11 support. KDE Plasma 6.8 will also drop X11 support.
- JetBrains is moving IntelliJ IDE to use Wayland by default.
- Xfce announced the Xfwl4 compositing server using Wayland.
- The Budgie 10.10 desktop environment has been migrated to Wayland.
- QNX Developer Desktop based on Wayland.
- Marathon OS is a Wayland-based mobile OS.
- Release of Wayback, a layer for running X11 desktops using Wayland components.
- Cinnamon now has the option to install session files for Wayland and implements the ability to switch keyboard layouts when using Wayland.
- The Wine driver implements support for the clipboard, input methods, non-rectangular windows, and transparency when running in Wayland-based environments.
- Wayland support has been added to Cairo-Dock.
- Composite servers updated: Weston 15.0, River 0.4.0, Hyprland 0.54, labwc 0.9.4, Niri 25.11, miracle-wm 0.8, Wayfire 0.10, wlmaker 0.6, labwc 0.9.0.
Let us remember that Wayland is a composite communication protocol Server and applications that use it. Clients independently render their windows in a separate buffer, passing information about updates to the composite server, which combines the contents of individual application buffers to generate the final output, accounting for possible nuances such as window overlap and transparency. In other words, the composite server does not provide an API for rendering individual elements, but operates only on pre-rendered windows, eliminating double buffering when using high-level libraries such as GTK and Qt, which handle the work of composing window contents.
Wayland solves many of the security problems of X11, since, unlike the latter, it isolates input and output for each window, does not allow a client to access the contents of other clients' windows, and does not allow interception of input events associated with other windows. Support for direct work with Wayland is implemented for most graphics libraries used in Linux, including GTK, Qt, SDL, FLTK, wxWidgets, Clutter, and EFL (Enlightenment Foundation Library).
Interaction with hardware in Wayland/Weston, such as initialization, switching video modes (drm modesetting) and memory management (GEM for i915 and TTM for radeon and nouveau) of graphics cards, can be performed directly through a module running at the kernel level, which allows you to do without superuser privileges. To ensure the execution of regular X11 applications in a Wayland-based environment, the XWayland (Device-Dependent X) DDX component is used, similar in its organization to Xwin and Xquartz for Win32 and macOS platforms.


Source: opennet.ru
