После восьми месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.25. Ветка 1.25 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Основные изменения в протоколе:
Добавленные c момента выпуска Wayland 1.25 расширения протоколов, дополняющих базовый протокол Wayland и поставляемых в отдельном наборе Wayland-Protocols:
Наиболее заметные события, связанные с Wayland и произошедшие с момента публикации прошлого выпуска:
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK и Qt, берущих на себя работу по компоновке содержимого окон.
Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux графических библиотек, включая GTK, Qt, SDL, FLTK, wxWidgets, Clutter и EFL (Enlightenment Foundation Library).
Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и macOS.


Источник: https://www.opennet.ru/opennews/art.shtml?num=65020
Основные изменения в протоколе:
- Документация преобразована из формата DocBook в mdBook (Markdown). Полностью документированы диалект Wayland XML, модель обновления контента и возможности для управления цветом. Добавлен новый атрибут "frozen" для интерфейсов с несколькими родительскими интерфейсами. Добавлен новый запрос wl_surface.get_release для получения уведомления о высвобождении буфера, прикреплённого клиентом через wl_surface.attach. В отличие от wl_buffer.release в wl_surface.get_release уведомление привязано к конкретному моменту отрисовки. Добавлена функция wl_display_dispatch_pending_single(), позволяющая достать из очереди событий и обработать только одно событие, а не все накопившиеся события, как это делает wl_display_dispatch_pending(). Обеспечено выделение цветами отладочного вывода WAYLAND_DEBUG.
Добавленные c момента выпуска Wayland 1.25 расширения протоколов, дополняющих базовый протокол Wayland и поставляемых в отдельном наборе Wayland-Protocols:
- xx-input-method - позволяет приложениям реализовывать методы ввода текста для композитных серверов и формировать введённый текст, что может применяться, например, для создания виртуальных клавиатур и IME-прослоек (Input Method Editor) для обработки ввода. xx-text-input - позволяет композитным серверам реализовывать методы ввода и отправлять текст в приложения. Протокол стандартизирует взаимодействие между композитным сервером и приложениями, и позволяет управлять такими возможностями, как передача вводимого текста, обработка событий об изменении фокуса ввода и учёт специфики полей ввода (язык, выделение текста, тип контента). Доработаны протоколы color-management-v1 и color-representation-v1, предоставляющие возможности для управления цветом, поддержки HDR и определения цветового представления Wayland-поверхности.
Наиболее заметные события, связанные с Wayland и произошедшие с момента публикации прошлого выпуска:
- В GNOME 50 удалена поддержка X11. В KDE Plasma 6.8 решено прекратить поддержку X11. JetBrains переводит IDE IntelliJ на использование Wayland по умолчанию. Xfce анонсировал композитный сервер Xfwl4, использующий Wayland. Среда рабочего стола Budgie 10.10 переведена на Wayland. QNX Developer Desktop на основе Wayland. Marathon OS - мобильная ОС на базе Wayland. Выпуск Wayback, прослойки для запуска рабочих столов X11, используя компоненты Wayland. В Cinnamon добавлена опциональная возможность установки сессионных файлов для Wayland и реализована возможность переключения раскладки клавиатуры при использовании Wayland. В драйвере wine при работе в окружениях на базе Wayland реализована поддержка буфера обмена, методов ввода, непрямоугольных окон и прозрачности. В Cairo-Dock добавлена поддержка Wayland. Обновление композитных серверов: 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.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK и Qt, берущих на себя работу по компоновке содержимого окон.
Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux графических библиотек, включая GTK, Qt, SDL, FLTK, wxWidgets, Clutter и EFL (Enlightenment Foundation Library).
Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и macOS.


Источник: https://www.opennet.ru/opennews/art.shtml?num=65020