LINUX.ORG.RU

Разработчики САПР KiCad раскритиковали Wayland и рекомендовали использовать X11

 , ,


3

6

Разработчики свободной системы автоматизированного проектирования печатных плат 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 не имеют возможности исправить возникающие проблемы своими силами, так как проблемы присутствуют не в KiСad, а в протоколах, оконных менеджерах и композитных серверах.

Учитывая, что Linux применяет лишь небольшая часть пользователей KiCad, решено избегать добавления в кодовую базу проекта костылей для обхода проблем, специфичных для оконных менеджеров, но при этом продолжать собирать KiCad для Wayland и тестировать сборки на совместимость. Все выявляемые проблемы и ограничения планируют документировать и доводить до сведения пользователей.

В системе отслеживания ошибок решено не разбирать жалобы от пользователей Wayland, связанные с позиционированием и размером окон, установкой фокуса, а также зависаниями, аварийными завершениями, повышенной нагрузке на CPU, проблемами с устройствами ввода и сбоями при отрисовке, не проявляющимися в сборке для X11.

Среди известных проблем, которые находятся вне зоны влияния разработчиков KiCad и которые не удаётся устранить на стороне KiCad:

  • Проблемы с управлением окнами: Невозможность управления позицией окон и панелей (при открытии KiCad нельзя запомнить и восстановить положение окон и панелей инструментов). Проблемы с координацией работы одновременно с несколькими окнами. Ограничение возможности перемещения вкладок и панелей между разными областями.
  • Проблемы с устройствами ввода: Возможность мгновенного перемещения курсора (cursor warping) завязана на необязательные экспериментальные расширения протокола, поддерживаемые лишь в отдельных композитных менеджерах. Непредсказуемое поведение при управлении фокусом ввода. Проблемы при использовании специализированных устройств ввода и при обработке горячих клавиш.
  • Проблемы со стабильностью и производительностью: Повышенное потребление ресурсов и высокая нагрузка на CPU/GPU по сравнению с использованием X11. Появление графических артефактов при отрисовке и нарушение нормального вывода. Зависания и аварийные завершения, проявляющиеся только при работе в окружениях на базе Wayland. Ненадёжная работа с буфером обмена.
  • Ограничения интерфейса пользователя: Проблемы с позиционированием, фокусом и взаимодействием в модальных диалогах. Проблемы с запуском внешних приложений и управления ими.

>>> Подробности (opennet)

★★★★★

Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

По факту лишь перечисленное выше является ограничениями, накладываемыми Wayland.

При этом уже решенными, лол.

gaylord
()
Ответ на: комментарий от macrohard

Для того, чтобы твоя программа работала в Wayland как тебе нужно, разработчик, тебе надо только … Написать собственный композитный менеджер!

Кстати, не самая плохая идея. Могли бы взять wlroots и через него всё иметь, а чего не иметь в протоколах, то дописать лично как себе удобно. Не знаю правда порог входа в wlroots, можно ли парой вызовов свой композитный менеджер сообразить.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

Кстати, не самая плохая идея. Могли бы взять wlroots и через него всё иметь, а чего не иметь в протоколах, то дописать лично как себе удобно. Не знаю правда порог входа в wlroots, можно ли парой вызовов свой композитный менеджер сообразить.

А толку, nested композитор это тупо окно.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)
Ответ на: комментарий от wandrien

Да, на наш век хватит. Скоро забудем все плюсы иксов и оставим по одной кнопке в каждом ДЕ и будем думать, что так и надо.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от Loki13

Всю жизнь софт подгоняли под новые версии ОС.

когда это было целесообразно. Тратить силы на 4% пользователей ещё есть смысл. На 4% разделённых между сколькими-то несовместимыми реализациям — вряд ли.

Та же Apple не всегда может так просто поставить перед фактом необходимости переписывания. Пример:

— Вот новая Mac OS X. Давайте всё переписывайте на Cocoa!

— Дешевле прекратить поддержку Apple.

— Ладно, вот вам Carbon для совместимости.

macrohard ★★★
()
Последнее исправление: macrohard (всего исправлений: 1)
Ответ на: комментарий от Loki13

не лучшая идея, прямо скажем говенненькая.

Тут вполне поддерживаю KiCAD и Wx разрабов - если вяленд не пинать а героически костылить свои композиторы и протоколы то оно так говном полным и останется. А тут хоть какой-то шанс что расширение стандарта протащат несмотря на истошные вопли секьюрити-упырей как в свое время протащили тиринг.

Qui-Gon ★★★★★
()
Ответ на: комментарий от gaylord

Странное что окно приложения, рисуемое приложением, ведет себя странно в Wayland. Хотя разницы быть ваще не должно, потому что Wayland никоим образом содержимое окна приложения не трогает.

Очень вероятно, что они из окна в окно перетаскивают. Типа список микросхем в одном окне топлевел, а разместить надо в другом топлевел окне и им не получить\сопоставить координаты.

Loki13 ★★★★★
()
Ответ на: комментарий от Qui-Gon

Насчёт «лавэ мутится» недавно как раз думал насчёт того, как поживает Ютуб в Гугле.

Отделы, отвечающие за морду Ютуба и других продуктов Гугла, по сути такие же бюджетники. Им платят не за результаты, за отчётность. Сегодня кнопку переставили туда, завтра - сюда. Профит.

(Где-то видел реальные скришноты Гмыла, где в разных итерациях дизайна тупо меняли квадратное на закруглённое, а закруглённое на квадратное.)

Но вот для меня взаимодействие с UX ютуба это каждый раз боль на протяжении многих лет:

  • При возвращении к содержимому канала в приложении, приложение рандомно теряет состояние. Может вернуться в нужную позицию, может в начало списка, может вообще на главную вкладку канала.
  • Невозможно получить список всех просмотренных видео с заданного канала.
  • Невозможно запустить воспроизведение канала подряд.
  • Нет никакой возможности группировки, категоризации каналов, на которые ты подписан. А меня там за сотню подписок, а может и за пару сотен.
  • Кстати о количествах. Из-за убогого бесконечного скроллинга с постоянной потерей состояния экрана в приложении невозможно работать ни с какими списками с большим количеством элементов. Ни со списком подписок, ни с результатами поиска, и т.п.

Просто доход гугла от всего этого не зависит. Зарплата отдела UX от этого не зависит тоже. Страдают только пользователи.

А у экосистемы вялого и гнома отрыв от пользователей, полагаю, еще больше, чем даже у отделов UX гугла. Так что ничего хорошего я тут вообще не ожидаю.

wandrien ★★★
()
Ответ на: комментарий от densss

Для таких специфических случаев я бы написал себе правила для _своего_ композитора и у меня бы на старте приложения все окна разбрасывались. Да, это будет работа юзера, не разработчика, но это сделать возможно.

Кеды вроде это даже без правил уже умеют.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Loki13

Очень вероятно, что они из окна в окно перетаскивают. Типа список микросхем в одном окне топлевел, а разместить надо в другом топлевел окне и им не получить\сопоставить координаты.

У них есть координаты внутри окна же.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)
Ответ на: комментарий от macrohard

— Вот новая Федора. Давайте всё переписывайте на Wayland!

— Дешевле прекратить поддержку Linux.

— Ладно, вот вам XWayland для совместимости.

Всё так. Всё так.

Loki13 ★★★★★
()
Ответ на: комментарий от macrohard

X11Libre. Вайгельт в одиночку такой проект не осилит.

Смотря что: https://github.com/X11Libre/xserver/commit/c8b81fdbc5bbc51e3c3c62ef8f2ac5c728bb57f7

drop Xwayland

It always had it’s own lifecycle (not been part of Xorg releases), doesn’t make sense to maintain a competing implementation that we won’t use anyways.
Once that’s gone, we can also drop few things in core/dix that had been added just for xwayland only.

dataman ★★★★★
()
Ответ на: комментарий от dataman

А смысл в этом есть? Чувак тратит кучу времени и сил чтобы двигать код и выкидывать фичи, внося при этом регрессии. А улучшается то что?

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)
Ответ на: комментарий от Loki13

Но нет координат окна и относительного расположения окон.

И зачем им это для перетаскивания? Drag n drop работает через протокольный реквест.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)

неужели раст не может закрыть проблему? где мощное сообщество его единомышленников?

alysnix ★★★
()
Ответ на: комментарий от gaylord

И зачем им это для перетаскивания? Drag n drop работает через протокольный реквест.

У них кривой wxWidgets используется.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

У них кривой wxWidgets используется.

Ну вот мы и дошли от «плохой Wayland не готов» до «KiCad использует бажный wxWidgets».

gaylord
()

Интересное. В вейланде у окон нет никаких привилегий, они не знают свою позицию на экране, не могут её менять, и не могут просто так управлять курсором. Всё это ради безопасности и контроля пользователя.

Кикад скорее всего слишком прибит гвоздями к многооконному интерфейсу, в целом логично для них остаться на x11, но для вейланда можно сделать примерно то же самое, взять базовое окно-канву во весь экран, и на нём размещать этот многооконный интерфейс в виде панелек.

neumond
()
Ответ на: комментарий от neumond

Кикад скорее всего слишком прибит гвоздями к многооконному интерфейсу, в целом логично для них остаться на x11, но для вейланда можно сделать примерно то же самое, взять базовое окно-канву во весь экран, и на нём размещать этот многооконный интерфейс в виде панелек.

А зачем? В Wayland есть все для того чтобы оно оно работало так же, как в иксах:

  • XDG Toplevel (окно)
  • XDG Toplevel Drag (док панелек)
  • Sesson Management (сохранение состояния окон)
gaylord
()
Ответ на: комментарий от u5er

Забавно. То есть, у вейланда самая строгая модель безопасности, круче даже чем в маках. Пусть он таким же и остаётся, мне нравится.

neumond
()

Да они прям Капитаны Очевидность! Нелья строить профессиональный многооконный интерфейс без глобального позиционирования окон.

kirill_rrr ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

Они перечислили ограничения протокола, это менять не станут.

Далеко не всё. Тот же cursor warp из новости уже в staging. Думаю возможность связывать окна одного приложения относительно друг друга тоже когда-нибудь сделают (это не так криво как позволять приложениям указывать абсолютные координаты своих окон). Остальные претензии выглядят как баги, возможно в композиторах, возможно в кикаде.

WSL_user
()
Ответ на: комментарий от Loki13

Для таких специфических случаев я бы написал себе правила для своего композитора и у меня бы на старте приложения все окна разбрасывались. Да, это будет работа юзера, не разработчика, но это сделать возможно.

Очень специфичный случай, да. Разработчики и дизайнеры передают пламенный привет. Иными словами: Windows - умеет из коробки, macos - умеет из коробки, X11 (с любыми WM и DE) - умеет из коробки, Wayland - подрочись-ка ты, дрогой юзверь, и напиши правила для композитора, чтобы пользоваться нашим самым модным и инновационным говном. Спасибо! Мне больше нечем заняться, как чинить то, что не сломано везде, кроме Вяленого. Ну да, действительно: Вяленый готов для десктопа! За то время, пока пилят Вяленый, дети успели родиться и закончить школочку, а у Вяленого проблемы с базовейшими вещами.

Кеды вроде это даже без правил уже умеют.

А мне не нравятся Кеды. Они меня бесят даже больше однокнопочного Гнома. Кеды и Гном - это две крайности, которыми у меня не возникает ни малейшего желания пользоваться.

densss ★★★★★
()
Ответ на: комментарий от densss

Wayland - подрочись-ка ты, дрогой юзверь, и напиши правила для композитора, чтобы пользоваться нашим самым модным и инновационным говном

Умеет из коробки. Просто авторы не осилили.

gaylord
()
Ответ на: комментарий от kirill_rrr

Нелья строить профессиональный многооконный интерфейс без глобального позиционирования окон.

Без цветовой дифференциации штанов у общества нет цели! (с)

alysnix ★★★
()

Это ясно даже ежу. Наброшу тут. Вяленый (как и Руст) не нужен и его надо закопать.

sparkie ★★★★★
()

Типичная ситуация для производственного ПО. Линукс или не поддерживается, или поддерживается по остаточному принципу. Кикад, очевидно, не исключение.

vbr ★★★★★
()

при открытии KiCad нельзя запомнить и восстановить положение окон

xdg-toplevel-tag

Ограничение возможности перемещения вкладок и панелей между разными областями.

xdg-toplevel-drag

Возможность мгновенного перемещения курсора (cursor warping) завязана на необязательные экспериментальные расширения протокола, поддерживаемые лишь в отдельных композитных менеджерах

pointer-warp-v1 релизнулся неделю назад, естественно что пока мало где будет реализован. Но по скольку это лишь небольшой аддон к уже реализованным везде pointer-constraints и relative-pointer - добавят его также везде. Нет ни единой причины не сделать этого.

Повышенное потребление ресурсов и высокая нагрузка на CPU/GPU по сравнению с использованием X11

С каким конкретно композитором это сравнение и почему причина именно в этом? А не в том, что wxWidgets крайне сырой на Wayland, это фактически один из немногих (если не единственный) тулкит, где поддержка Wayland до сих пор начальная и экспериментальная.

ависания и аварийные завершения, проявляющиеся только при работе в окружениях на базе Wayland.

Опять же - что является причиной этого всего - плохо работающий wxWidgets или костыли в самом KiCAD? Подробностей не узнаем.

Ненадёжная работа с буфером обмена.

А это вообще как понимать? Есть ext-data-control-v1, добавляй и будет работать. Почти все тулкиты поддерживают, SDL поддерживают, эти почему-то себя особеннными считают.

Проблемы с позиционированием, фокусом и взаимодействием в модальных диалогах.

xdg-dialog-v1

Sunderland93 ★★★★★
()
Ответ на: комментарий от macrohard

Ждём десктопную версию Android.

А что её ждать? Подключаешь пиксель по usb-c к монитору и у тебя десктопная версия андроид, здесь и сейчас.

https://www.youtube.com/watch?v=Wwr9rc-9aeA

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от macrohard

X11Libre. Вайгельт в одиночку такой проект не осилит. Даже если будет работать не один и осилит, всё равно без использования в качестве решения по умолчанию X11Libre будет в ситуации Arcan: развивается, но существует сам по себе и никем не используется.

А он там не один. Если посмотришь гитхаб, там человек 5-6 активно PR строчат.

hateyoufeel ★★★★★
()

[сторонники вейланда]
Ну вот у Х11 останется вот такая специализированная ниша — сложный софт для разработки плат, нужный малому количеству людей.
Моей бабушке это не надо. Моей бабушке нужна безопасность, чтобы никакие хакеры не могли делать скриншоты и управлять позициями окон и мышки.
Безопасность — это то что нужно большинству пользователей.
Желательно чтобы было по-меньше автоматизации, чтобы даже для выполнения простейших функций бабушке пришлось думать и чаще тыкать пальцами, думать как решить проблему, искать куда пропало окно — мелкая моторика поможет ей тренировать мозг и сохранить бодрость ума и духа в более старшем возрасте.
[/сторонники вейланда]

Bad_ptr ★★★★★
()
Ответ на: комментарий от vbr

Мне бы кроме пикселя ноутбук и официальный образ от Google для установки на самосборный компьютер. Пока десктопный режим работы дополнительная функция, а не основная, немногие программы для Android будут иметь десктопные версии.

macrohard ★★★
()
Последнее исправление: macrohard (всего исправлений: 1)

Большинство пользователей используют компьютер как запускалку игр и браузера, а также браузера в игре и игр в браузере.
Вейланд подходит для этого лучше всего.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Вейланд подходит для этого лучше всего.

Слишком много опечаток в названии «Windows 11».

wandrien ★★★
()
Ответ на: комментарий от gaylord

Улучшается настроение чувака. Выкидывать код вообще очень приятно. Чувствуешь себя, как Микеланджело - откалываешь от уродливого куска мрамора всё ненужное.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Улучшается настроение чувака. Выкидывать код вообще очень приятно. Чувствуешь себя, как Микеланджело - откалываешь от уродливого куска мрамора всё ненужное.

За чувака я ваще рад. И иксам-то где польза?

gaylord
()
Ответ на: комментарий от AP

У обеих этих приложух такая же фигня с гуём: перекрывающиеся окна.

Ну значит переделают на нормальный - GIMP справился и у этих всё получится :)

zabbal ★★★★★
()
Ответ на: комментарий от PPP328

не работал с кадами и тем более на двух мониторах

Впервые вижу чела, который считает что работа с CAD заключается в дрочеве множества мелких окошек туда-сюда. До сих пор мне казалось что работа заключается в проектировании всякого.

zabbal ★★★★★
()
Ответ на: комментарий от zabbal

Впервые вижу чела, который считает что работа с CAD заключается в дрочеве множества мелких окошек туда-сюда. До сих пор мне казалось что работа заключается в проектировании всякого.

Впервые вижу чела, который считает, что работа хирурга заключается в дрочеве скальпелем туда-сюда. До сих по мне казалось что работа заключается в лечении людей.

gaylord
()
Ответ на: комментарий от gaylord

Они просто флудят. Пожилые мужчины, кричащие на облака. Благодатная тема. Вот в моё-то время о-о-о. А вот молодёжь-то у-у-у.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)