После четырёх месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.26. Ветка 1.26 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный sèvè Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Gwo chanjman nan pwotokòl la:
- Добавлено событие 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-koupe — pou jwenn enfòmasyon sou koupe ki sou ekran an (pa egzanp, zòn ki anba kamera devan an sou ekran telefòn entelijan an).
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — pou kliyan an ka entèsepte evènman klavye yo chwazi, modifye evènman antre, oswa bloke sèten evènman pou yo pa pase sou sifas Wayland ki konsantre a.
- В категорию «staging» добавлен протокол xdg-session-management, предоставляющий возможности для восстановления состояния и позиции окон прерванного сеанса в окружениях на основе протокола Wayland, например, после аварийного завершения композитного sèvè oswa aplikasyon yo.
- Pwotokòl "linux-dmabuf" la te mete ajou pou sipòte sistèm milti-GPU. Sou sistèm sa yo, kliyan an ka negosye konpoze sèvè ki GPU ki ta dwe itilize.
- Pwotokòl jesyon koulè v1 lan te mete ajou pou sipòte metadone imaj BT.2100 pou itilize nan konpoze. sèvè fonksyon espesifik ki pèmèt bon jan ekspozisyon kontni HDR ki kreye pou Windows.
Наиболее заметные события, связанные с Wayland и произошедшие после публикации прошлого выпуска:
- В Cinnamon реализована полноценная поддержка Wayland.
- Nan bibliyotèk ANGLE ki itilize nan Chrome ak 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.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному sèvè, ki konbine kontni chak aplikasyon nan memwa tanpon yo pou jenere rezilta final la, pran an kont posib nuans tankou sipèpoze fenèt ak transparans. Nan lòt mo, sèvè konpoze a pa bay yon API pou rann eleman endividyèl, men li opere sèlman sou fenèt pre-rann, elimine doub memwa tanpon lè w ap itilize bibliyotèk wo nivo tankou GTK ak Qt, ki jere travay konpoze kontni fenèt yo.
Wayland решает многие проблемы с безопасностью X11 в X.Org Server, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода (в XLibre XServer реализовано X11-расширение Xnamespace, обеспечивающее изоляцию клиентов через разделение на уровне пространств имён). Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux bibliyotèk grafik ki gen ladan GTK, Qt, SDL, FLTK, wxWidgets, Clutter, ak EFL (Enlightenment Foundation Library).
Entèraksyon avèk pyès ki nan konpitè nan Wayland/Weston, tankou inisyalizasyon, chanjman mòd videyo (konfigirasyon mòd DRM), ak jesyon memwa (GEM pou i915 ak TTM pou Radeon ak Nouveau) pou kat grafik yo, ka fèt dirèkteman atravè yon modil nivo nwayo, sa ki elimine nesesite pou privilèj super itilizatè. Pou asire ekzekisyon aplikasyon X11 estanda nan yon anviwònman ki baze sou Wayland, yo itilize konpozan DDX XWayland (Device-Dependent X) la, ki menm jan ak operasyon Xwin ak Xquartz pou Win32 ak macOS.
Sous: opennet.ru
