The release of wayland-protocols 1.21 has been published, containing a set of protocols and extensions that enhance the capabilities of the base Wayland protocol and provide the necessary features for building composite servers and user environments.
Starting from version 1.21, the development stage of the 'unstable' protocols has been replaced with 'staging' to smooth the stabilization process of protocols tested in production environments. All protocols undergo three phases — development, testing, and stabilization. After the development phase is completed, the protocol is placed in the 'staging' branch and included in the wayland-protocols set, and after testing is completed, it moves to the stable category. Protocols from the 'staging' category can already be applied in compositors. servers and clients where related functionality is required. Changes that break compatibility are prohibited in the 'staging' category, but if issues and shortcomings are identified during testing, the replacement of the protocol with a new significant version or another Wayland extension is not excluded.
The new version allows installation using the Meson build system instead of autotools. In the future, support for autotools will be completely discontinued. A new protocol, xdg-activation, has been added to the staging category, allowing focus to be transferred between different top-level surfaces. For example, using xdg-activation, one application launcher interface can pass focus to another interface or one application can switch focus to another. Support for xdg-activation has already been implemented for Qt, GTK, wlroots, Mutter, and KWin.
Currently, the wayland-protocols package includes the following stable protocols that ensure backward compatibility:
- viewporter - allows the client to perform scaling and cropping actions on the surface from the client's side. server.
- "presentation time" – provides video display.
- ‘xdg-shell’ — an interface for creating and interacting with surfaces as windows, allowing them to be moved across the screen, minimized, maximized, resized, etc.
Protocols currently being tested in the 'staging' branch:
- "fullscreen-shell" – managing full-screen mode;
- "input-method" – handling input methods;
- "idle-inhibit" – blocking the screen saver from starting;
- "input-timestamps" – timestamps for input events;
- "linux-dmabuf" – sharing multiple graphics cards using the DMABuff technology;
- "text-input" – organizing text input;
- "pointer-gestures" – managing from touch screens;
- "relative pointer events" – relative pointer events;
- "pointer constraints" – pointer constraints (locking);
- tablet - support for input from tablets.
- "xdg-foreign" – interface for interacting with surfaces of a "neighboring" client;
- "xdg-decoration" – window decoration rendering on the server side;
- "xdg-output" – additional information about the video output (used for fractional scaling);
- «xwayland-keyboard-grab» — input capture in XWayland applications.
- primary-selection – similar to X11, it provides the operation of the primary selection buffer, information from which is typically pasted using the middle mouse button;
- linux-explicit-synchronization – a Linux-specific mechanism for buffer synchronization tied to the surface.
- xdg-activation — allows focus to be transferred between different top-level surfaces (for example, using xdg-activation, one application can switch focus to another).
Source: opennet.ru
