Оценка готовности GNOME для работы поверх Wayland
Питер Хаттерер (Peter Hutterer), мэйнтейнер подсистемы ввода X.Org, опубликовал заметку про то, что о готовности Wayland следует судить не по стабильности и завершённости протокола и компонентов Wayland, а по степени поддержки Wayland в приложениях, тулкитах и десктоп-окружениях. Без практических реализаций поддержки протокола Wayland лишён смысла, поэтому, по мнению Хаттерера, вопрос «Готов ли уже Wayland?» следует перефразировать в «Могу ли я запустить GNOME, KDE, Enlightenment и т.д. под Wayland?» и ответ будет «Всё зависит от того, что для вас важно чтобы работало безупречно». В свою очередь выражение «люди, работающие над Wayland» следует понимать как «люди, работающие над реализацией поддержки Wayland в…».
Хаттерер сравнивает трудности миграции с X11 на Wayland с тем, как если бы все решили перейти с английского языка на французский. Проблемы в такой ситуации возникают примерно аналогичные: Несмотря на то, что французский более современен, лучше звучит и поддерживает недоступные в английском языковые обороты, пока никто вокруг не говорит на этом языке, а вывески/газеты не переведены. И даже если в ресторане нанимают говорящего на французском официанта и переводят меню, персонал в соседнем магазине по-прежнему понимает только английский. Поэтому долгое время возможность применения французского языка будет сильно зависеть от обстоятельств и ситуации. Примерно те же трудности испытывает Wayland.
В ответ, Маттиас Класен (Matthias Clasen), лидер Fedora Desktop Team и участник GNOME Release Team, рассмотрел вопрос готовности Wayland на примере проекта GNOME. В частности, обращается внимание на то, что после более двух лет портирования работа уже почти завершена и проект близок к переходу дистрибутива Fedora 24 на использование GNOME с Wayland по умолчанию. Несмотря на то, что последние шаги к заветной цели самые трудные, в последних выпусках Wayland 1.9.91 и GNOME 3.19.4 наблюдаются существенные сдвиги вперёд. В частности:
- Проделана большая работа по обеспечению корректного позиционирования диалоговых окон, меню и различных всплывающих элементов интерфейса приложений. Изначально позиция при выводе на экран выбиралась GTK-бэкендом Wayland эвристическим путём, отталкиваясь от косвенных параметров, таких как метаданные о типе окна. Недавно реализованная новая схема работает более точно и основывается на создании дополнительного переходного родительского окна;
- Качество работы кинетической (инерционной) прокрутки доведено до должного уровня и работает не хуже или даже лучше, чем в X11. Поддержка кинетической прокрутки определена в протоколе и, в отличие от X11, не требует дополнительной эвристики на стороне драйверов;
- Реализация режима Drag-and-Drop в Wayland теперь сравнима с реализацией для X11: для протокола Wayland реализованы необходимые дополнения, в GTK+ осуществлён перенос операций обработки курсора и ввода на сторону бэкендов GTK.
Из задач, которые ещё предстоит решить, отмечаются:
- Обеспечение начальной поддержки планшетов Wacom, которая ожидается в Wayland 1.10;
- Реализация замены для первичного основного буфера обмена X11 (primary selection), используемого при клике средней кнопкой мыши. В скором времени в протокол Wayland будут внесены необходимые изменения;
- Перенос в GDK (для организации работы в форме бэкенда) новой системы управления позиционированием меню, недавно добавленной в GTK+. Идея переноса в бэкенд предложена разработчиками Mir и также одобрена для включения в бэкенд для Wayland.
Также отмечается прогресс в развитии средств для организации удалённого доступа к рабочему столу на базе GNOME и Wayland:
Кроме того, разработчики из компании NVIDIA близки к реализации поддержки Wayland в своих пропритерных драйверах для Linux. В блоге компании опубликована подробная статья об использовании уже добавленной возможности создания контекста OpenGL через EGL, без X Server. Необходимые для работы Wayland и Mir EGL-расширения уже входят в состав драйвера, также уже доступен прототип модуля для поддержки KSM. После завершения реализации KMS-интерфейса будут доступны все компоненты, необходимые для полноценной поддержки Wayland. В статье приведён пример создания контекста OpenGL через EGL без привлечение дисплейного менеджера, что также может применяться для организации рендеринга на стороне сервера.
Полный текст статьи читайте на OpenNet