Wayland 1.26 is available

After four months of development, the stable release of the Wayland 1.26 protocol, interprocess communication mechanism, and libraries has been released. The 1.26 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:

  • Added the wl_pointer.warp event, which allows you to receive notifications about the new position of the pointer without handling the wl_pointer.motion event generated by user activity.
  • Added the wl_fixes.ack_global_remove request, which is designed to send a confirmation to the composite manager that the client has stopped processing the event, to prevent race conditions when removing global events. After receiving confirmation from all clients, the composite manager can remove the handler associated with the event on its side.
  • Added wl_display_remove_socket_fd() function to remove sockets previously added via wl_display_add_socket_fd() call.
  • In the WAYLAND_DEBUG debug mode, time is logged in the "HH:MM:ss.xxxxxx" format, simplifying log parsing and comparison.

Protocol extensions added since the previous release of Wayland that complement the core Wayland protocol and are supplied in a separate Wayland-Protocols set:

  • xx-fractional-scale — for scaling a logical coordinate system, in which values ​​are specified as integers, to improve positioning accuracy and increase the resolution of logical coordinates down to individual pixels. This feature solves the problem of the limited resolution of the logical coordinate system, which is insufficient for positioning at the individual pixel level, which is necessary for the full implementation of fractional scaling.
  • xx-cutouts — to get information about cutouts on the screen (for example, the area under the front camera on the smartphone screen).
  • xx-zones — for creating and adding top-level windows to "zones"—environments with their own coordinate space. The protocol allows for a logical arrangement of windows, in which each window is positioned relative to every other window.
  • xx-keyboard-filter — for the client to intercept selected keyboard events, modify input events, or block certain events from being passed to the focused Wayland surface.
  • The xdg-session-management protocol has been added to the staging category, providing the ability to restore the state and position of windows from an interrupted session in Wayland-based environments, for example after a composite server or application crashes.
  • The "linux-dmabuf" protocol has been updated to support multi-GPU systems. On such systems, the client can negotiate with the composite server which GPU to use.
  • The color-management-v1 protocol has been updated to support image metadata in BT.2100 format for the use of specific handlers in the composite server, allowing for the correct display of HDR content created for Windows.

Notable events related to Wayland since the last issue was published:

  • Cinnamon has full support for Wayland.
  • In the ANGLE library used in Chrome and Android, Wayland support added.
  • KDE, when using Wayland, implements session restore support and the xx-fractional-scale-v2 Wayland protocol for fractional scaling.
  • A port of the Synaptics X.Org driver has been created for Wayland-based environments.
  • A readiness check for VFX and animation platforms to replace X11 with Wayland has been initiated.
  • Testing of the Xfwl4 composite server from the Xfce project has begun.
  • Unity's user interface has been recreated using Wayfire and Libadwaita.
  • Updated composite servers and desktop environments: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.

Let us recall that Wayland is a protocol for interaction between a composite server and applications working with it. Clients render their own windows in a separate buffer, passing updates to the composite server, which combines the contents of individual application buffers to produce a final output that takes into account possible nuances such as window overlap and transparency. In other words, the composite server does not provide an API for rendering individual elements, but only operates on already formed windows, which allows you to get rid of double buffering when using high-level libraries such as GTK and Qt, which take on the work of compositing the contents of windows.

Wayland solves many of the X11 security issues in X.Org Server, 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 related to other windows (XLibre XServer implements the X11 extension Xnamespace, which provides client isolation through separation at the namespace level). Support for direct work with Wayland is implemented for most of the platforms used in Linux graphics libraries including GTK, Qt, SDL, FLTK, wxWidgets, Clutter, and EFL (Enlightenment Foundation Library).

Interaction with hardware in Wayland/Weston, such as initialization, video mode switching (DRM modesetting), and memory management (GEM for i915 and TTM for Radeon and Nouveau) for graphics cards, can be performed directly through a kernel-level module, eliminating the need for superuser privileges. To ensure the execution of standard X11 applications in a Wayland-based environment, the XWayland (Device-Dependent X) DDX component is used, which is similar in operation to Xwin and Xquartz for Win32 and macOS.

Source: opennet.ru

Buy reliable hosting for sites with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster