Особливості підтримки Wayland у KiCad для проектування
Розробники вільної системи автоматизованого проектування друкованих плат KiCad розповіли про стан реалізації підтримки Wayland та узагальнили проблеми, що заважають повноцінному використанню цього протоколу. Користувачам, які професійно проектують друковані плати в KiCad або бажають отримати стабільне та повнофункціональне середовище, рекомендовано запускати KiCad у середовищах робочого столу на базі протоколу X11, таких як Xfce, MATE або X11-сеанс KDE Plasma.
Тим, хто має намір використовувати KiCad у середовищах з Wayland, слід бути готовим до можливих зависань та аварійних завершень, неможливості відновити бажане розташування вікон та обмеження функціональності інтерфейсу. Обмеження у функціональності спричинені відсутністю в Wayland можливостей, які давно застосовуються в додатках для X11, Windows та macOS, таких як підтримка позиціонування вікон та миттєвого переміщення вказівника миші (cursor warp).
Проблеми при використанні KiCad з Wayland
Збої, що виникають під час роботи з KiCad на Wayland, пов’язані з великою фрагментацією композитних серверів. GNOME, KDE та окремі композитні менеджери по-своєму інтерпретують протоколи Wayland. Тому покладатися при розробці на єдину цілісну реалізацію протоколів Wayland та експериментальні розширення проблематично. Розробникам додатків доводиться враховувати особливості кожного середовища та застосовувати обхідні рішення для проблем, специфічних для різних композитних менеджерів.
Фрагментація композитних серверів суттєво збільшує трудовитрати на реалізацію підтримки Wayland. Найприкріше те, що розробники KiCad не мають можливості виправити проблеми власними силами, оскільки вони присутні не в KiCad, а в протоколах, віконних менеджерах та композитних серверах.
Рішення команди розробників KiCad
Враховуючи, що Linux використовує лише невелика частина користувачів KiCad, вирішено уникати додавання в кодову базу проекту тимчасових рішень для обходу проблем, специфічних для віконних менеджерів. Втім, команда продовжуватиме збирати KiCad для Wayland і тестувати збірки на сумісність. Усі виявлені проблеми та обмеження планують документувати та доводити до відома користувачів.
У системі відстеження помилок вирішено не розглядати скарги від користувачів Wayland, пов’язані з позиціонуванням і розміром вікон, встановленням фокусу, а також зависаннями, аварійними завершеннями, підвищеним навантаженням на CPU, проблемами з пристроями введення та збоями при відображенні, які не проявляються у збірці для X11.
Відомі проблеми KiCad на Wayland
Серед відомих проблем, які знаходяться поза зоною впливу розробників KiCad і які не вдається усунути на стороні KiCad:
- Проблеми з керуванням вікнами: неможливість керування позицією вікон та панелей (при відкритті KiCad неможливо запам’ятати і відновити положення вікон та панелей інструментів). Проблеми з координацією роботи одночасно з кількома вікнами. Обмеження можливості переміщення вкладок і панелей між різними областями.
- Проблеми з пристроями введення: можливість миттєвого переміщення курсора (cursor warping) прив’язана до необов’язкових експериментальних розширень протоколу, що підтримуються лише в окремих композитних менеджерах. Непередбачувана поведінка при керуванні фокусом введення. Проблеми при використанні спеціалізованих пристроїв введення та під час обробки гарячих клавіш.
- Проблеми зі стабільністю та продуктивністю: підвищене споживання ресурсів і високе навантаження на CPU/GPU порівняно з використанням X11. Поява графічних артефактів при відображенні та порушення нормального виводу. Зависання та аварійні завершення, що проявляються тільки при роботі в середовищах на базі Wayland. Ненадійна робота з буфером обміну.
- Обмеження інтерфейсу користувача: проблеми з позиціонуванням, фокусом і взаємодією в модальних діалогах. Проблеми із запуском зовнішніх додатків та керування ними.
Розвиток альтернативи – проєкт X11Libre
Варто також відзначити прогрес у розробці проєкту X11Libre, який розвиває форк X.Org Server. За 10 днів з моменту заснування форку до розробки долучилося 11 учасників, які надіслали 31 зміну. Енріко Вайгельт, автор форку, переніс у форк 1267 своїх змін, які не були прийняті в основний склад X.Org.
Тим часом розробники X.Org відкотили з кодової бази X.Org Server 6 змін, раніше прийнятих від Енріко Вайгельта, які призводили до регресій або були пов’язані з позначенням деяких можливостей застарілими.
Кевін Кофлер з проєкту Fedora, який входить до робочої групи, що займається супроводом пакетів з KDE, запропонував замінити в Fedora Linux пакет xorg-x11-xserver на реалізацію X-сервера від форку XLibre. Мотивом заміни названо перехід на активно супроводжувану кодову базу замість продовження постачання застарілого і майже не оновлюваного проєкту X.