LINUX.ORG.RU

Пара вопросов по Wayland

 , ,


0

4

Здравствуйте

Я пытаюсь добиться, чтобы моя программа работала под Wayland (пока мне удалось запустить работу под Windows и X11). Хочу уточнить некоторые ограничения, которые, как мне кажется, в Wayland являются непреодолимыми. У меня многооконное приложение типа «одно главное окно + любое количество дополнительных окон». Дополнительные окна являются чем-то вроде «панелей», которые можно стыковать к докерам (напоминает интерфейс Photoshop-а). GUI свой, поэтому я рисую в окне всё, что хочу. Но с Wayland возникают большие проблемы.

  1. Я не вижу возможности гарантированно обнаружить нажатие кнопки «свернуть окно». Да, одно окно, на котором эта кнопка нажата свернётся, но остальные останутся на экране. Вроде бы есть состояние XDG_TOPLEVEL_STATE_MINIMIZED, но, как я понял, оно не приходит почти нигде. А другого способа вообще не видно.

  2. Как я понимаю, окна в wayland нельзя перемещать по глубине. Соответственно, запросто возможна ситуация, когда дополнительные окна оказываются под основным, о чем я даже не узнаю. Это совсем плохо.

  3. Существует проблема с ALT+TAB, потому что wayland нельзя указать какое именно окно там показывать, а значит он может выкинуть туда все окна сразу. Правда, вроде бы есть вариант с помощью xdg_toplevel_set_app_id() указать одинаковый id для всех своих окон, что в теории должно остановить wayland от показа всех окон сразу по ALT+TAB.

Это тот минимум, в который я пока упёрся. Если я что-то неверно понимаю, то прошу мне объяснить этот вопрос. Я могу рисовать все «панели» внутри главного окна, но это портит всю концепцию, так как «панели» полезут на рабочую область главного окна. Единственное что приходит в голову - это развернуть окно на весь экран превращая его в «рабочий стол» и по нему уже расставлять другие окна. Но это какой-то «крайний случай»…

Всем спасибо!

Ответ на: комментарий от Odin_KG

Забей. Вейланд пока всё ещё бета. Посмотри сколько людей на ЛОР-е на него перешли, голосовалка висит. Лет через 5-6 попробую на него перекатиться. А пока рано.

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

Смолтоковский Pharo хорошо работает и выглядит на вейланде, а вот на X11 там полное ШГ. С другой стороны, с карточкой нвидия у меня на вейланде плохо работают телеграмм и яндекс-браузер. В итоге вернул X11. Если только для смолтока специально придется открывать сессию KDE с вейландом

anonymous
()
10 сентября 2025 г.
Ответ на: комментарий от peregrine

уже пару лет как нормально все с wayland даже на nvidia проприетарных драйверах — вполне себе актуальный, в отличии от x11 (слава wayland который спас нас от иксов)...

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

никаких проблем у протокола нет таковых — описанно тсом вообще не является реальностью, поскольку wayland получается все им указанное позволяет реализовать (ведь в том же Dolphin все ок с такими окнами — смогли они, — сможет и каждый иной)

однако wayland перекладывает многое на плечи самих разработчиков оконного интерфейса или гуишных фреймворков

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

Посмотри как сделаны сложные программы: браузеры
Все они давным-давно ушли от многооконности

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

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

потому что аналогичные сообщения от вейланда они получить не могут

https://wayland.freedesktop.org/libinput/doc/latest/api/group__event__pointer...
а разве не через профильные либы для такого? (там вроде бы в unstable протоколе готовятся пробросы как я понимаю)

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

однако wayland перекладывает многое на плечи самих разработчиков оконного интерфейса или гуишных фреймворков

В этом и есть проблема. Если бы к нему прикладывался стандартный протокол оконного интерфейса - а так закладывается основа для зоопарка несовместимых реализаций.

ведь в том же Dolphin все ок с такими окнами

Подозреваю (не сильно претендуя на истину), что Dolphin под каждое новое окно новый процесс создаёт. Но тут надо не гадать, а исходники смотреть, да.

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

там вроде бы в unstable протоколе готовятся пробросы как я понимаю

Ну вот когда всё это станет stable – тогда и можно было бы поставить вопрос об отмирании иксов. А не вот это вот насильное выпиливание рабочего.

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

а каждое (!!!) нажатие шерстится вся огромная куча деталей

ну кажется не вся, а только которая отфильтровалась по предыдущему вводу — но да — N*log(N) получается.

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

В этом и есть проблема. Если бы к нему прикладывался стандартный протокол оконного интерфейса - а так закладывается основа для зоопарка несовместимых реализаций.

ну тут проблема только в твоих словах — поскольку как раз от такого подхода как ты хочешь и отказались намеренно в wayland — основываясь на пути xorg. Представляешь, если каждое приложение будет отслеживать жадно эвенты перемещения курсора — что произойдёт?

Подозреваю (не сильно претендуя на истину), что Dolphin под каждое новое окно новый процесс создаёт. Но тут надо не гадать, а исходники смотреть, да.

ты хотел сказать не процесс, а поток (thread)?

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

Представляешь, если каждое приложение будет отслеживать жадно эвенты перемещения курсора — что произойдёт?

Можно сделать по-человечески. Можно ДАТЬ приложению возможность эти события отслеживать, причём в случае, если на это приложению явно предоставлены права.

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

иксы унылые — очень оверхедные по дизайну

сама по себе задача протокола для организации оконных систем очень нетривиальная

Тебе осталось сложить два и два…

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

примерно так возможно потенциально и будет

Примерно такой ответ и ожидался. То есть по факту, есть в иксах работающая фича и если ее реализовать в вяленом, мир не обрушится. Просто придется признать непроработанность вяленной концепции.

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

не — зачем иксовости переводить в wayland? — только ушли спеша неоглядываясь и легко вздыхая от облегчения... подумай сам — я выше уже высказался на счёт «жадного» отслеживания эвентов на положение курсора глобально (хотя клиенты и так могут получается через libinput — но тут было бы через запрос в композитор — а таковое было бы грустно как и было в иксах).

п.с. ну и все эти стейжинг и анстейбл фичи вроде же нормально работают — если что-то не работает — любой может сделать фикс|добавление. Просто привыкли многие, что только есть и ничего делать не нужно — а вот если есть возможность то можно и сделать (помочь)... (опенсорсжеж)

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

Голосую за то чтобы менять привычки. У меня вообще иногда только геймпад под рукой. Предлагаю делать везде удобный, но разный интерфейс, исходя из возможностей интерфейсных либ, а не один для всех.

ext4
()