После четырёх месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.26. Ветка 1.26 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Canvis importants al protocol:
- Добавлено событие wl_pointer.warp, через которое можно получать уведомления о новой позиции указателя без обработки события wl_pointer.motion, генерируемого при активности пользователя.
- Добавлен запрос wl_fixes.ack_global_remove, предназначенный для отправки композитному менеджеру подтверждения того, что клиент прекратил обработку события для исключения состояния гонки при удалении глобальных событий. После получения подтверждения от всех клиентов композитный менеджер может удалить связанный с событием обработчик на своей стороне.
- Добавлена функция wl_display_remove_socket_fd() для удаления сокетов, до этого добавленных через вызов wl_display_add_socket_fd().
- В отладочном режиме WAYLAND_DEBUG обеспечен вывод в лог времени в формате «HH:MM:ss.xxxxxx», упрощающем разбор и сравнение логов.
Добавленные после рошлого выпуска Wayland расширения протоколов, дополняющие базовый протокол Wayland и поставляемые в отдельном наборе Wayland-Protocols:
- xx-fractional-scale — для масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- xx-cutouts — per obtenir informació sobre els retalls a la pantalla (per exemple, la zona que hi ha sota la càmera frontal a la pantalla del telèfon intel·ligent).
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — perquè el client pugui interceptar esdeveniments de teclat seleccionats, modificar esdeveniments d'entrada o bloquejar certs esdeveniments perquè no es passin a la superfície de Wayland en què s'ha seleccionat el focus.
- El protocol xdg-session-management s'ha afegit a la categoria de proves, que permet restaurar l'estat i la posició de les finestres des d'una sessió interrompuda en entorns basats en Wayland, per exemple, després que un servidor compost o una aplicació es bloquegi.
- El protocol "linux-dmabuf" s'ha actualitzat per admetre sistemes amb diverses GPU. En aquests sistemes, el client pot negociar amb el servidor compost quina GPU utilitzar.
- El protocol color-management-v1 s'ha actualitzat per admetre metadades d'imatges en format BT.2100 per a l'ús de controladors específics al servidor compost, permetent la visualització correcta del contingut HDR creat per a Windows.
Наиболее заметные события, связанные с Wayland и произошедшие после публикации прошлого выпуска:
- В Cinnamon реализована полноценная поддержка Wayland.
- A la biblioteca ANGLE que s'utilitza a Chrome i Android, добавлена поддержка Wayland.
- В KDE при использовании Wayland реализована поддержка восстановления сеансов и реализован Wayland-протокол xx-fractional-scale-v2 для дробного масштабирования.
- Создан порт X.Org-драйвера Synaptics для окружений на базе Wayland.
- Инициирована проверка готовности платформ VFX и анимации к замене X11 на Wayland.
- Началось тестирование композитного сервера Xfwl4 от проекта Xfce.
- На базе Wayfire и Libadwaita воссоздана пользовательская оболочка Unity.
- Обновлены композитные серверы и среды рабочего стола: 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.
Recordem que Wayland és un protocol d'interacció entre un servidor compost i les aplicacions que hi treballen. Els clients representen les seves pròpies finestres en una memòria intermèdia separada, passant actualitzacions al servidor compost, que combina el contingut dels buffers d'aplicacions individuals per produir una sortida final que tingui en compte possibles matisos com ara la superposició de finestres i la transparència. En altres paraules, el servidor compost no proporciona una API per a la representació d'elements individuals, sinó que només funciona en finestres ja formades, la qual cosa permet desfer-se del doble buffer quan s'utilitzen biblioteques d'alt nivell com GTK i Qt, que assumeixen el treball de composició del contingut de les finestres.
Wayland решает многие проблемы с безопасностью X11 в X.Org Server, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода (в XLibre XServer реализовано X11-расширение Xnamespace, обеспечивающее изоляцию клиентов через разделение на уровне пространств имён). Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux biblioteques gràfiques com ara GTK, Qt, SDL, FLTK, wxWidgets, Clutter i EFL (Enlightenment Foundation Library).
La interacció amb el maquinari a Wayland/Weston, com ara la inicialització, el canvi de mode de vídeo (configuració de mode DRM) i la gestió de memòria (GEM per a i915 i TTM per a Radeon i Nouveau) per a targetes gràfiques, es pot dur a terme directament a través d'un mòdul a nivell de nucli, eliminant la necessitat de privilegis de superusuari. Per garantir l'execució d'aplicacions X11 estàndard en un entorn basat en Wayland, s'utilitza el component DDX XWayland (Device-Dependent X), que té un funcionament similar a Xwin i Xquartz per a Win32 i macOS.
Font: opennet.ru
