Выпуск wayland-protocols 1.21

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

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

В новой версии реализована возможность установки с использованием системы сборки Meson вместо autotools. В будущем планируется полностью прекратить поддержку autotools. В категорию staging добавлен новый протокол xdg-activation, позволяющий передать фокус между разными поверхностями первого уровня. Например, при помощи
xdg-activation один интерфейс для запуска приложений может передать фокус другому интерфейсу или одно приложение может переключить фокус на другое. Поддержка xdg-activation уже реализована для Qt, GTK,
wlroots, Mutter и KWin.

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

  • “viewporter” – позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
  • “presentation time” – обеспечивает отображение видео.
  • “xdg-shell” – интерфейс создания и взаимодействия с поверхностями как с окнами, что позволяет их передвигать по экрану, сворачивать, разворачивать, изменять размер и т.д.

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

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

Release. Ссылка here.