Доступен Wayland 1.23
После более года разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.23. Ветка 1.23 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Основные изменения в протоколе:
В libwayland реализован API, позволяющий клиенту определить максимальный размер внутреннего буфера соединений на стороне сервера. Базовый максимальный размер буфера выставляется через интерфейс wl_display, а новый API позволяет клиентам изменять его в привязке к каждому клиентскому соединению. C практической стороны изменение позволяет использовать буферы большего размера в специфичных Wayland-клиентах, таких как Xwayland, которым свойственна большая интенсивность событий ввода.
Для запросов (request), событий (event) и перечислений (enum) предоставлена возможность использования XML-атрибута «deprecated-since» для пометки устаревших элементов. В терминологии Wayland запросы — это сообщения, отправляемые клиентом к серверу; события — это сообщения передаваемые от сервера к клиенту; перечисления — это связанные с определённым именем наборы числовых значений, которыми манипулирует протокол.
- В утилиту wayland-scanner, предназначенную для генерации заголовочных файлов и кода на языке Си на основе XML-файлов с описанием протокола, добавлен режим «enum-header», включающий указание в заголовочных файлах только «перечислений».
- В wayland-scanner обеспеченна генерация проверочных функций (validator) для «перечислений» на стороне сервера.
Добавлен API для назначения очереди имени с целью упрощения последующей отладки.
Добавлены функции wl_client_get_user_data () и wl_client_set_user_data (), упрощающие прикрепление произвольных данных к клиенту.
Добавлен запрос wl_shm.release, позволяющий клиенту информировать сервер о прекращении использования разделяемого объекта, что позволяет серверу освободить связанную с ним память.
Добавлена поддержка платформы OpenBSD.
Связанные с Wayland события, произошедшие с момента публикации прошлого выпуска:
Опубликован XWayland 24.1.0 с поддержкой технологии Explicit Sync и улучшением поддержки архитектур 2D-ускорения GLAMOR и EXA.
Обновление композитного сервера labwc (Lab Wayland Compositor) с возможностями, напоминающими оконный менеджер Openbox.
Проект wprs, развивающий для Wayland менеджер сеансов, похожий на утилиту screen, но для графических приложений.
Публикация композитного сервера Niri, использующего Wayland и предлагающего метод мозаичной (tiling) компоновки с группировкой окон в бесконечно прокручиваемую на экране ленту.
Обновление набора протоколов и расширений Wayland-Protocols: 1.34, 1.33, 1.32, 1.35.
Разработка библиотеки SDL3, применяющей Wayland по умолчанию.
Выпуск среды рабочего стола LXQt 2.0.0 с поддержкой Wayland в файловом менеджере PCManFM-Qt, системе уведомлений, рабочем столе, утилите для запуска программ (Runner), панели, интерфейсе выхода из системы, интерфейсе настройки LXQt и большинстве приложений.
Релиз пользовательского окружения Sway 1.9, использующего Wayland.
Новый композитный менеджер miracle-wm, базирующийся на Wayland и компонентах для построения композитных менеджеров Mir.
Louvre — новая библиотека для разработки композитных серверов на базе Wayland.
Работа по реализации поддержки Wayland в Xfce.
Начальная поддержка Wayland в среде рабочего стола Budgie.
- Начальная поддержка Wayland в среде рабочего стола Cinnamon.
Почти завершено портирование рабочего стола MATE для Wayland.
Дистрибутив Lubuntu переходит на использование Qt 6 и Wayland.
В KDE 6 по умолчанию предложен сеанс, использующий протокол Wayland. Реализована поддержка Wayland-расширений для управления цветом.
В платформе Electron включён режим декорирования окон для Wayland.
Обновление композитного сервера Wayfire, использующего Wayland и позволяющего формировать интерфейсы пользователя c 3D-эффектами в стиле 3D-плагинов к Compiz.
Поддержка Wayland в IDE IntelliJ и OpenJDK.
Поддержка Wayland в текстовом редакторе GNU Emacs.
В GNOME в сеансе на базе Wayland реализована поддержка программного KVM-коммутатора Input Leap, позволяющего использовать одну клавиатуру и мышь для управления несколькими компьютерами.
Редакция Fedora с рабочим столом KDE прекратила поддержку сеанса на основе протокола X11 в базовой поставке.
Улучшена поддержка окружений на базе Wayland в проприетарных драйверах NVIDIA.
Реализован драйвер, позволяющий использовать Wine в окружениях на базе протокола Wayland без применения XWayland и компонентов X11.
- Сформирован выпуск композитного сервера Weston 13.0.
Для тестирования работы KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce и Sway поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.
В Linux-сборках Firefox по умолчанию включено использование композитного сервера Wayland вместо XWayland. Предоставлена возможность создания сборок, поддерживающих работу только в Wayland.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK и Qt, берущих на себя работу по компоновке содержимого окон.
Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK, Qt, SDL (начиная с выпуска 2.0.2), Clutter и EFL (Enlightenment Foundation Library). Начиная с Qt 5.4 в состав включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland.
Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11, другого композитного сервера Wayland, фреймбуфера и RDP. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.
В рамках проекта Weston развивается одна из реализаций композитного сервера. В роли композитного сервера также может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в KWin. В текущем виде Weston уже вышел за рамки набора примеров для тестирования протокола Wayland и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Weston. Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и macOS.
Источник: http://www.opennet.ru/opennews/art.shtml? num=61281
© OpenNet