Разработчики свободной системы автоматизированного проектирования печатных плат KiCad рассказали о состоянии реализации поддержки Wayland и обобщили проблемы, мешающие полноценному использованию данного протокола. Пользователям, профессионально проектирующим печатные платы в KiCad или желающим получить стабильное и полнофункциональное окружение, рекомендовано запускать KiCad в средах рабочего стола на базе протокола X11, таких как Xfce, MATE или X11-сеанс KDE Plasma.
Тем кто намерен использовать KiCad в окружениях с Wayland следует быть готовым к возможным зависаниям и аварийным завершениям, невозможности восстановить желаемую раскладку окон и ограничению функциональности интерфейса. Утверждается, что ограничения в функциональности вызваны отсутствием в Wayland возможностей, давно применяемых в приложениях для X11, Windows и macOS, таких как поддержка позиционирования окон и мгновенного перемещения указателя мыши (cursor warp).
Что касается возникающих сбоев, то они связываются с большой фрагментацией композитных серверов для Wayland. GNOME, KDE и обособленные композитные менеджеры по своему интерпретируют протоколы Wayland, поэтому полагаться при разработке на единую целостную реализацию протоколов Wayland и экспериментальные расширения проблематично. Разработчикам приложений приходится учитывать особенности каждого окружения и применять костыли для обхода проблем, специфичных для разных композитных менеджеров.
Фрагментация композитных серверов существенно увеличивает трудозатраты на реализацию поддержки Wayland. Отмечается, что самое неприятное в том, что разработчики KiCad не имеют возможность исправить возникающие проблемы своими силами, так как проблемы присутствуют в протоколах, оконных менеджерах и композитных серверах.
Учитывая, что Linux применяет лишь небольшая часть пользователей KiCad, решено избегать добавления в кодовую базу проекта костылей для обхода проблем, специфичных для оконных менеджеров, но при этом продолжать собирать KiCad для Wayland и тестировать сборки на совместимость. Все выявляемые проблемы и ограничения планируют документировать и доводить до сведения пользователей.
В системе отслеживания ошибок решено не разбирать жалобы от пользователей Wayland, связанные с позиционированием и размером окон, установкой фокуса, а также зависаниями, аварийными завершениями, повышенной нагрузке на CPU, проблемами с устройствами ввода, сбоями при отрисовке, не проявляющимися в сборке для X11.
Среди известных проблем, которые находятся вне зоны влияния разработчиков KiCad и которые не удаётся устранить на стороне KiCad:
- Проблемы с управлением окнами: Невозможность управления позицией окон и панелей (при открытии KiCad нельзя запомнить и восстановить положение окон и панелей инструментов). Проблемы с координацией работы одновременно с несколькими окнами. Ограничение возможности перемещения вкладок и панелей между разными областями.
- Проблемы с устройствами ввода: Возможность мгновенного перемещения курсора (cursor warping) завязана на необязательные экспериментальные расширения протокола, поддерживаемые лишь в отдельных композитных менеджерах. Непредсказуемое поведение при управлении фокусом ввода. Проблемы при использовании специализированных устройств ввода и при обработке горячих клавиш.
- Проблемы со стабильностью и производительностью: Повышенное потребление ресурсов и высокая нагрузка на CPU/GPU по сравнению с использованием X11. Появление графических артефактов при отрисовке и нарушение нормального вывода. Зависания и аварийные завершения, проявляющиеся только при работе в окружениях на базе Wayland. Ненадёжная работа с буфером обмена.
- Ограничения интерфейса пользователя: Проблемы с позиционированием, фокусом и взаимодействием в модальных диалогах. Проблемы с запуском внешних приложений и управления ими.
Дополнительно можно отметить прогресс в разработке проекта X11Libre, развивающего форк X.Org Server. За 10 дней с момента основания форка к разработке подключилось 11 участников, которые отправили 31 изменение. Энрико Вайгельт, автор форка, в свою очередь перенёс в форк 1267 своих изменений, не принятых в основной состав X.Org. Тем временем, разработчики X.Org откатили из кодовой базы X.Org Server 6 изменений, ранее принятых от Энрико Вайгельта и приводящих к регрессиям или связанных с пометкой некоторых возможностей устаревшими (всего до создания форка от Энрико в X.Org Server было принято 1568 изменений).
Кевин Кофлер (Kevin Kofler) из проекта Fedora, входящий в рабочую группу, занимающуюся сопровождением пакетов с KDE, предложил заменить в Fedora Linux пакет xorg-x11-xserver на реализацию X-сервера от форка XLibre. В качестве мотива замены упомянут переход на активно сопровождаемую кодовую базу вместо продолжения поставки устаревшего и почти не обновляемого проекта X.Org, который по заявлению его разработчиков почти остался без сопровождения. Автор форка был наиболее активным участником проекта X.Org Server и поставка форка будет выгодна создателям редакций Fedora, остающихся на X11, например, из-за добавления в X11Libre X11-расширения Xnamespace, обеспечивающего изоляцию клиентов на уровне пространств имён X11. Предложение пока не утверждено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.