Доступен Wayland 1.21

После шести месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.21. Ветка 1.21 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Несколько дней назад сформировано корректирующее обновление композитного сервера Weston 10.0.1, который развивается в рамках отдельного цикла разработки. Weston предоставляет код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях.

Основные изменения в протоколе:

  • В программный интерфейс wl_pointer добавлена поддержка события wl_pointer.axis_value120 для высокоточного скроллинга на манипуляторах мышь с колесом прокрутки высокого разрешения.

  • В сервер добавлены новые функции wl_signal_emit_mutable (аналог wl_signal_emit, поддерживающий корректную работу в ситуации, когда один обработчик сигналов, удаляет другой обработчик) и wl_global_get_version (позволяет узнать общую версию API).

  • Разработка переведена на платформу GitLab с использованием инфраструктуры проекта FreeDesktop.org.

  • Проведена чистка и переработка структур и функций, связанных с настройкой курсора.
  • Протокол wl_shell отмечен как необязательный для реализации в композитных серверах и объявлен устаревшим. Для создания пользовательских оболочек рекомендовано использовать протокол xdg_shell, предоставляющий интерфейс для взаимодействия с поверхностями как с окнами, что позволяет передвигать поверхности по экрану, сворачивать, разворачивать, изменять размер и т.д.

  • Повышены требования к сборочной системе, для сборки теперь необходим инструментарий Meson как минимум версии 0.56. При компиляции включён флаг «c_std=c99».




Изменения в приложениях, окружениях рабочего стола и дистрибутивах, связанные с Wayland:

  • В KDE планируют в 2022 году довести сеанс рабочего стола Plasma на базе протокола Wayland до состояния, пригодного для повседневного использования существенной долей пользователей. Значительно улучшена поддержка Wayland в выпусках KDE Plasma 5.24 и 5.25, в том числе добавлена поддержка глубины цветности больше 8-бит на канал, реализован режим «DRM leasing» для шлемов виртуальной реальности, обеспечена поддержка создания скриншотов и сворачивания всех окон.

  • В Fedora 36 на системах с проприетарными драйверами NVIDIA по умолчанию задействован сеанс GNOME на базе протокола Wayland, который раньше применялся только при использовании открытых драйверов.

  • В Ubuntu 22.04 для большинства конфигураций по умолчанию задействован сеанс рабочего стола на базе протокола Wayland, но использование X-сервера оставлено по умолчанию для систем с проприетарными драйверами NVIDIA. Для Ubuntu предложен PPA-репозиторий с пакетом qtwayland в который из ветки Qt 5.15.3, сопровождаемой проектом KDE, перенесены исправления, связанные с улучшением поддержки протокола Wayland.

  • Опубликован выпуск пользовательского окружения Sway 1.7, использующего Wayland.

  • В ночных сборках Firefox по умолчанию включена поддержка Wayland. В Firefox исправлена проблема с блокировкой потоков, налажено масштабирование всплывающих окон и обеспечена работа контекстного меню при проверке правописания. В соответствии со статистикой сервиса Firefox Telemetry, анализирующего данные, поступающие в результате отправки телеметрии и обращения пользователей к серверам Mozilla, доля Linux-пользователей Firefox, работающих в окружениях на базе протокола Wayland, пока не превышает 10%.

  • Опубликован выпуск экранной оболочки для мобильных устройств Phosh 0.15.0, основанной на технологиях GNOME и использующей композитный сервер Phoc, работающий поверх Wayland.

  • Компания Valve продолжает развивать композитный сервер Gamescope (ранее известный как steamcompmgr), использующий протокол Wayland и применяемый в операционной системе SteamOS 3.

  • Опубликован выпуск DDX-компонента XWayland 22.1.0, обеспечивающего запуск X.Org Server для организации выполнения X11-приложений в окружениях на базе Wayland. В новой версии добавлена поддержка протокола DRM Lease, который используется для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.

  • Проект labwc развивает композитный сервер для Wayland с возможностями, напоминающими оконный менеджер Openbox (проект преподносится как попытка создания альтернативы Openbox для Wayland).

  • Доступен первый выпуск LWQt, варианта пользовательской оболочки LXQt на базе Wayland.

  • Компания Collabora в рамках проекта wxrd, развивает новый композитный сервер на базе Wayland для систем виртуальной реальности.

  • Опубликован выпуск проекта Wine-wayland 7.7, позволяющего использовать Wine в окружениях на базе протокола Wayland, без применения XWayland и компонентов X11.

  • Аарон Плaттнер (Aaron Plattner), один из ведущих разработчиков проприетарных драйверов NVIDIA, опубликовал отчёт о состоянии поддержки Wayland в драйверах NVIDIA.

  • Сформирован выпуск композитного сервера Weston 10.0, в котором добавлена поддержка библиотеки libseat, предоставляющей функции для организации доступа к совместно используемым устройствам ввода и вывода, а также добавлены компоненты для управления цветом, позволяющие преобразовывать цвета, выполнять гамма-коррекцию и работать с цветовыми профилями.

  • Продолжено портирование рабочего стола MATE для Wayland.

  • Компания System76 работает над созданием нового пользовательского окружения COSMIC, использующего Wayland.

  • Компания Microsoft реализовала возможность запуска Linux-приложений с графическим интерфейсом в окружениях на базе подсистемы WSL2 (Windows Subsystem for Linux). Для вывода задействован композитный менеджер RAIL-Shell, использующий протокол Wayland и основанный на кодовой базе Weston.

  • Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish, webOS Open Source Edition, Tizen и AsteroidOS.
  • На базе Wayland развиваются оболочки Ubuntu Frame и wayward.

  • Для тестирования работы KDE, GNOME, Enlightenment, Wayfire, Liri и Sway поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.




0_1464763723.png0_1464763699.png

Напомним, что 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=57432

© OpenNet