The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Wayland-Protocols 1.49

07.06.2026 22:44 (MSK)

Представлен выпуск пакета wayland-protocols 1.49, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.

В новой версии:

  • Добавлен экспериментальный протокол xx-fractional-scale, предоставляющий возможность масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
  • В протокол "linux-dmabuf" добавлена поддержка работы на системах с несколькими GPU. На подобных системах клиент может согласовать с композитными сервером какой из GPU следует использовать.
  • В протокол color-management-v1 добавлена поддержка метаданных изображений в формате BT.2100 для применения в композитном сервере специфичных обработчиков, позволяющих корректно отображать HDR-контент, созданный для Windows.

Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.

Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации протоколов в существующих проектах, начиная с позапрошлого выпуска дополнительно была добавлена фаза "experimental", в которой допускается внесение изменений, нарушающих совместимость, и добавление "сырых" протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу "staging" требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в "experimental" достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.

В настоящее время в состав набора wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:

  • "viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
  • "presentation-time" - обеспечивает отображение видео.
  • "xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, позволяющий передвигать их по экрану, сворачивать, разворачивать, изменять размер и т.д.
  • "linux-dmabuf" - предоставляет возможности для создания wl_buffer-ов на базе DMA-BUF.
  • "tablet" - организация ввода с графических планшетов.

Протоколы, тестируемые в ветке "staging":

  • drm-lease - предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
  • "ext-session-lock" - определяет средства блокировки сеанса, например, во время работы хранителя экрана или вывода диалога аутентификации.
  • "single-pixel-buffer" - позволяет создавать однопиксельные буферы, включающие четыре 32-разрядных значения RGBA.
  • "xdg-activation" - позволяет передать фокус между разными поверхностями первого уровня (например, при помощи xdg-activation одно приложение может переключить фокус на другое).
  • content-type - позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как "content type". Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
  • ext-idle-notify - даёт возможность композитным серверам передавать клиентам уведомления о неактивности пользователя, что может использоваться для активации дополнительных режимов энергосбережения после определённого времени неактивности.
  • tearing-control - позволяет отключить в полноэкранных приложениях вертикальную синхронизацию (VSync) с кадровым гасящим импульсом, применяемую для защиты от появления разрывов при выводе (tearing). В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
  • ext-foreign-toplevel-list - получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон.
  • security-context - позволяет идентифицировать клиентов, использующих sandbox-изоляцию. Клиент может зарегистрировать новое подключение к композитному серверу на базе Wayland и прикрепить к нему контекст безопасности, после чего в соответствии с указанным контекстом безопасности композитный менеджер ограничит возможности, доступные для установленного соединения.
  • cursor-shape - альтернативный способ настройки внешнего вида курсора, основанный на передаче серии изображений курсора вместо привязки к поверхности (wl_surface).
  • "ext-transient-seat" - предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
  • "xdg-toplevel-drag" - расширяет механизм "drag & drop" возможностью прикрепления окон верхнего уровня к операции перемещения, что может быть использовано, например, для организации перетаскивания мышью панелей инструментов или вкладок браузера. Новый протокол позволяет создавать отсоединяемые части окна, которые при перетаскивании из этого окна становятся новыми окнами и могут перемещаться поверх существующего окна перед повторным прикреплением.
  • "xdg-dialog" - позволяет назначать поверхностям верхнего уровня признаки, специфичные для диалоговых окон, например, можно создавать модальные диалоги, которые блокируют взаимодействие пользователя с остальной частью интерфейса.
  • "linux-drm-syncobj" - предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
  • alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
  • xdg-toplevel-icon - привязка пиктограммы к окну верхнего уровня.
  • ext-image-capture-source и ext-image-copy-capture - организация захвата контента, выводимого на экран.
  • xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. Форма вывода сигнала определяется на усмотрение композитного менеджера, это может быть не только звук, но визуальный отклик.
  • fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. С практической стороны протокол позволяет при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
  • commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).
  • ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
  • ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. Протокол может применяться для создания панелей и индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
  • color-management - предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
  • xdg-toplevel-tag - позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги "main window" и "settings" для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
  • color-representation - определение цветового представления Wayland-поверхности. Wayland-клиенты могут передавать метаданные, необходимые для определения прозрачности, цветовой модели, субдискретизации и диапазона квантования, и применяемые при преобразовании буфера с данными, соответствующими цветовой модели YCbCr, в представление RGB.
  • ext-background-effect - применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
  • pointer-warp - позволяет приложению мгновенно переместить указатель в указанную позицию.
  • xdg-session-management - возможности для восстановления состояния и позиции окон прерванного сеанса, например, после аварийного завершения композитного сервера или приложения.

Протоколы, разрабатываемые в ветке "experimental":

  • xx-session-management - восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
  • xx-input-method - даёт возможность приложениям реализовывать методы ввода текста для композитных серверов и формировать введённый текст, что может применяться, например, для создания виртуальных клавиатур и IME-прослоек (Input Method Editor) для обработки ввода.
  • xx-text-input - позволяет композитным серверам реализовывать методы ввода и отправлять текст в приложения. Протокол стандартизирует взаимодействие между композитным сервером и приложениями, и позволяет управлять такими возможностями, как передача вводимого текста, обработка событий об изменении фокуса ввода и учёт специфики полей ввода (язык, выделение текста, тип контента).
  • xx-cutouts - для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
  • xx-zones - для создания и добавления окон верхнего уровня в "зоны" - окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
  • xx-keyboard-filter - для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.

Протоколы, разрабатываемые в ветке "unstable":

  • "fullscreen-shell" - управление работой в полноэкранном режиме.
  • "input-method" - обработка методов ввода.
  • "idle-inhibit" - блокировка запуска скринсейвера (экранной заставки).
  • "input-timestamps" - временные метки для событий ввода.
  • "keyboard-shortcuts-inhibit" - управление прикреплением клавиатурных комбинаций и горячих клавиш.
  • "linux-explicit-synchronization" - специфичный для Linux механизм синхронизации буферов в привязке к поверхности.
  • "pointer-gestures" - управление с сенсорных экранов.
  • "pointer constraints" - ограничения указателей (блокировка).
  • "primary-selection" - по аналогии с X11 обеспечивает работу первичного буфера обмена (primary selection), вставка информации из которого обычно осуществляется средней кнопкой мыши.
  • "relative pointer events" - относительные события указателей.
  • "text-input" - организация ввода текста.
  • "xdg-foreign" - интерфейс взаимодействия с поверхностями "соседнего" клиента.
  • "xdg-decoration" - отрисовка декораций окон на стороне сервера.
  • "xdg-output" - дополнительные сведения о видеовыходе (используется для дробного масштабирования).
  • "xwayland-keyboard-grab" - захват ввода в приложениях XWayland.


  1. Главная ссылка к новости (https://www.mail-archive.com/w...)
  2. OpenNews: Выпуск Wayland-Protocols 1.48
  3. OpenNews: Доступен Wayland 1.25
  4. OpenNews: Проект Xfce анонсировал композитный сервер Xfwl4, использующий Wayland и Rust
  5. OpenNews: Выпуск labwc 0.20, композитного сервера для Wayland
  6. OpenNews: Выпуск miracle-wm 0.9, композитного менеджера на базе Wayland и Mir
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65638-wayland
Ключевые слова: wayland
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, АнонимнйыКодер (?), 00:10, 08/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.3, Аноним (4), 00:11, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования

    Не прошло и 20 лет, как они заметили, что соотношение логических и физических координат при дробном масштабировании оказывается ... дробным!

     
     
  • 2.5, Аноним (4), 00:15, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    P.S. И да, xx-fractional-scale уже устарел, т.к. в KDE сделали xx-fractional-scale-v2
     
     
  • 3.7, Аноним (7), 00:26, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылка в статье буквально ведёт на описание xx-fractional-scale-v2.

    Вообще мне кажется это ошибка в статье. Как будто протокол xx-fractional-scale уже давно болтался в unstable, просто ему на замену пришёл xx-fractional-scale-v2

     
  • 2.9, Аноним (9), 00:34, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Стейбл протокол, кста. Ну ничего, ща всё быстренько поменяют и никто ничего не заметит, один хрен под вейландом стабильного софта не существует, везде стулья переставляют каждый день. И если в репозитории на гитхабе не было коммитов больше 72 часов, то проект уже начинают хоронить как легаси.
     
     
  • 3.12, Аноним (10), 00:57, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Один чёрт не юзабельно, https://github.com/NVIDIA/egl-wayland2/ туго идёт.
     
     
  • 4.22, name (??), 02:33, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно туго, им это не интересно, они вложились в arm ноуты с виндой и аишечкой.
     
  • 2.15, Аноним (13), 01:07, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты ещё не забывай, что там нет в принципе абсолютного позиционирования окон. Куда эти координаты привязывать и как, никто не знает. Нет поддержки как со стороны композитных менеджеров, так и клиентов.
     

  • 1.6, Аноним (4), 00:18, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > добавлена поддержка работы на системах с несколькими GPU

    Прям как на старых Иксах!

     
     
  • 2.19, Xo (?), 01:41, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Где даже Оптимус заставить работать нужно было неделями шаманить, и так до тех пор пока не упадут иксы.
     

  • 1.18, Аноним (18), 01:39, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > xdg-toplevel-tag - [...] использовать для идентификации окон после перезапуска приложения [...] для восстановления позиции, размера и свойств окон после перезапуска
    > xdg-session-management - возможности для восстановления состояния и позиции окон
    > xx-session-management - восстановление состояния окон для прерванных сеансов

    Ай да вяленые, ай да молодцы! Шел 17-й год головокружительных инноваций, а ребята все еще тщетно пытаются изобрести велосапедный механизм восстановления окон. 😂 Аплодирую стоя! Два протокола, решающих одну и ту же задачу, причем в обоих случаях - наиболее корявым способом. Настолько корявым, что уже делается ТРЕТИЙ на замену, лол.

    * Запрещаем приложению передвигать и масштабировать СВОИ СОБСТВЕННЫЕ окна.
    * Протокол при этом не делаем ("сообщество допилит").
    * Делаем удивленные глаза "а почему у нас теперь три протокола?". 😲

     
     
  • 2.20, Xo (?), 01:43, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Таблетки выпей.
     
  • 2.25, q (ok), 03:14, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Концепция простая: Оконный менеджер управляет окнами. Логично, согласись? Оконный менеджер... менеджерит. Знаю, в это трудно поверить. Но это так. Это не только в вяленом, но и в принципе во всем мире во всех областях:

        Менеджер менеджерит.

    Простая концепция, согласись? Но кто-то умудряется в нее не вписаться. "Нет, ты не менеджер! Ты просто рисуешь кнопку закрытия окна в МОЕМ окне!" -- говорит приложение. Иксы бы промолчали в тряпочку. А вяленый гигачад ответит: "Это не тебе решать, и даже не мне. Решает пользователь. Пользователь хочет все окна по центру. Так что давай не возникай тут особо. Подчиняйся". И приложение униженно подчиняется менеджеру, который действительно менеджерит. Причем подчиняется именно униженно, на коленях. Тотальное верховенство пользователя над своими окнами и приложениями, а вяленый -- его силовик-омоновец.

     

  • 1.23, Alladin (?), 02:43, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    да помню моменты когда:

    1. wayland рассказывал об отсутствии тиринга из-за новой крутой архитектуры и без клиентсерверской составляющей.. что всплыло?, что просто никакого !отключения! vsync не существовало

    2. высокая производительность из-за новой элементной базы.. реальность на практике и тестов он не только не приблизился к xorg, а вообще ушел в такое болото.. и потребление кхе

    3. нацеленная антиреклама иксов, создание эффекта стогнации..

     
     
  • 2.24, Alladin (?), 02:48, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    *стагнации конечно же)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру