LINUX.ORG.RU
ФорумTalks

Спустя 15 лет индеец Зоркий Глаз заметил, что...

 , ,


3

6

… даже в Wayland таки нужно позволять программам управлять координатами своих окон.

Привет, ЛОР!

В нашей регулярной рубрике «разработчики Wayland постигают здравый смысл и изобретают заново иксы» сегодня мы рассматриваем аж два новых протокола, оба из которых должны позволить программам «намекать» (hint) композитору на то, где же их всё таки надо нарисовать.

Из-за этого у вялендовцев вылез срач, потому что не всем нужно, чтобы программы могли решать где же им быть нарисованными.

Протокол раз: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247

Позволяет программам указывать координаты и вывод. Композитор может последовать рекомендации, а может и проигнорировать.

Протокол два: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249

Позволяет программам указывать «предпочтения» по местоположению: например, по центру, наверху, внизу и т.д. А всё потому что многим не понравился предыдущий протокол, ведь «что они себе позволяют атататат». Особенно сильно против выступают разработчики Weston, мнение которых должно кого-то волновать^W^W^W^W^W^Wкоторый внезапно используется в каком-то эмбеддеде в автомобилях.

Вся шарага затеяна из-за программ, использующих несколько окон на экране, например Lazarus, GIMP, ImageJ и другие. В Wayland с ними работать крайне неприятно, потому что окна при старте оказываются раскиданы по всему экрану.

Так глядишь, ещё через 15 лет Wayland всё-таки сможет заменить это гнилые иксы. Так держать, товарищи!

★★★★★

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

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

Не, мне казалось, она просто у себя держит и видео и звук в памяти, и проверяет что они не лагают.

я не знаю, но любое гоняние информации из gpu и обратно неэффективно, это должен быть gpu буффер, чтобы его можно было импортировать в opengl, прокомпозировать как нужно для стрима и отправить результат в gpu же енкодер. Разумеется всё это делается, для этого есть dmabuf with modifiers, для меня логично было предположить, что pipewire шарит именно его

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

Многоконный гимпэудобнее, но как скажете.

Shadow ★★★★★
()

Я помню разработчики kicad очень волновались в рассылке насчет подобной фичи, после объявления о выпиле Х11 в федоре. Рассказывали, что разработчики GTK (а кикад использует wxWidgets, которым исторически не повезло завязаться на него) - известные специалисты по интерфейсам для профессионального ПО (нет) - сказали им, что это плохой UX и вообще не нужно.

И кто бы мог подумать - в обсуждениях по ссылкам ни одного лица из гномоленда.

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

Рассказывали, что разработчики GTK (а кикад использует wxWidgets, которым исторически не повезло завязаться на него) - известные специалисты по интерфейсам для профессионального ПО (нет) - сказали им, что это плохой UX и вообще не нужно.

Ждём перехода KiCad на Qt. Давно пора!

Вспоминается драма с Wireshark и Audacious. Авторы обоих проектов говорили, что разрабы GTK – просто невозможно упёртые лоси, с которыми нереально договориться, если тебе нужна какая-нибудь фича (даже мелкая и даже если ты сам патч пришлёшь), в то время как в Qt всё есть из коробки.

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

ryzen renoir apu

тут поможет выпаять чип и выкинуть на помойку.
APU не резетятся, чтобы его резетнуть нужно снять питание с APU.
У меня один раз удалось успешно резетнуть вегу, хакнув ядро так, что уход в suspend не привёл к дедлоку. после выхода из suspend снова дёрнул reset и APU стал отвечать нормально. Но как это в текущей архитектуре ядра реализовать не поломав фенсы и не завершая все графические приложения я себе не представляю, а нервы потраченные из-за злосчастной веги уже ничто не вернёт

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

Не нужно, пускай будут упоротыми до конца. Гимп под одно окно переписать (уже), пасцаль тоже. А если дать им это то следующим шагом захотят фокус перехватывать. Ну а если не переписывать проги - то пусть запоминает последние координаты. Уж один раз-то юзер окно подвинет, не переломится

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

Почти уверен, что ни один из этих протоколов не примут.

А их и не должны принять все. Это опциональные протоколы-расширения, вокруг wayland их уже вагон. Там в основном обсуждение и попытка договориться то чего-то адекватного, а потом разные чуваки это к себе притянут. Скорее всего, оно появится в wlroots и KDE в том или ином виде, а остальные положат болт.

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

Я имею в виду, не примут в wayland-protocols, даже как опциональные.

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

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

Я вот лично угораю с этого цирка, жру попкорн и хочу больше этого!

Сам придумал, сам смеёшься?

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

ну смотри - я пользовался вегой первого поколения, может на renoir не так всё плохо. Проблема была в том что помимо сломанных иксов зависшая вега превращалась в висящий дедлок, затягивающий в себя все части ядра, которые её касаются, поскольку после рестарта вега вообще никак не работала (рестарт по факту не происходил, она продолжала висеть и греться).
Если ты после краша apu можешь перезапустить иксы без перезагрузки и там будут работать графические приложения, значит это поправили и способ, что я предложил выше может даже сработать

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

Ну 15 лет с начала разработки уже прошло. Проект можно сказать только только стартанул ещё спецификацию не до конца додумали =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от cobold

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

Нам, пользователям GNOME, хорошо - мы мазохисты)) Ну, если серьёзно, нет проблем с открыванием окон приложений на своих местах: телега всегда открывается в нижнем правом углу, slack в нижнем левом, менеджер паролей всегда в верхнем левом, а всё остальное - по центру.

basilic
()

Я не понимаю к чему все эти бессмысленные споры. Совершенно очевидны две вещи:

  1. Недопустимо каждой мокропиське давать полный доступ к системе: экрану, вводу, камере, диску, клавиатуре и т.д.;
  2. Есть исключительные случаи, когда программе такие вещи все же нужны: необычные use cases, пользователи с ограниченными возможностями, словари, Push-to-talk и т.д. Если такие приложения появились и стали популярными, значит они полезные для определенных категорий людей.

Почему нельзя просто настраивать разрешения для конкретных приложений, как в том же Андроиде? Программа хочет перехватывать какие-то хоткеи? Если ей это действительно нужно, пусть пользователь в специальном приложении типа Flatseal разрешит это действие.

Если программа превышает свои полномочия и пользователь не хочет давать ей такие права, пусть программе кажется, что ей это разрешено, но при этом ничего не происходит – чтобы не было шантажа «разреши, а то не запущусь».

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

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

Потому что в десктопном линуксе нет такого механизма, который позволил бы запрашивать и давать разрешения. Лялекс пытается развивать идеи UNIX из 70х, притворяясь что всё является файлом (теперь файловым дескриптором).

Плюс, лялекс — это всё ещё базар, а не собор. Шапка пытается сделать свой собор, но у них «нет сырья и кадров», поэтому получается полное говно (см. GNOME).

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

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

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

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

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

За 15 лет можно было уже три раза такой механизм написать и внедрить.

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

Его правда и в Wayland нет и неясно когда будет

В Gamescope уже есть

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

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

Снова врешь. Есть механизм порталов и запросы разрешений через них

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

Дискретная Вега ведёт себя очень похоже же: ресет либо не приводит ни к чему (экран гаснет и все, но ядро хоть как-то продолжает работать), либо графика типа перезапускается, но все тормозит и через минуту-две компьютер зависает.
Еще Вега любит в случайный момент повесть pcie, да так, что аппаратный watchdog на материнке делает hard reset. На rdna такого нет.
И судя по GitLab, я не один такой.

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

Если бы вейланда не было, его стоило бы придумать. Прибежище для говнокодеров мнящих себя архитекторами

Макось, винда и андроид смотрят и учатся, как не надо делать

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

Вот ты, весь такой знающий-понимающий, почему сам не напишешь, раз суть проблемы уловил и даже знаешь как сделать?

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

экран моего компа сейчас при разрешении 51202160 требует 2.6 гигабайта в секунду

Только если без сжатия захочешь гнать по сети. Для локалхоста есть DMABUF и EXTERNAL_MEMORY_FD.

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

Ого, надо же! Очередной wayland-фанатик с синдромом «сперва добейся» в 2023 году. Не нужно быть поваром, чтобы определить, что суп хреновый. Где только таких одинаковых фанатиков выращивают?

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

Обычное 32bit целое для fd куска видеорамы. И ещё одно для DRM_modifiers, иначе придется линейный тайлинг использовать.

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

Да, на renoir всё было очень хорошо - при запуске OpenCL слегка слетал буфер иксов, иксы легко перезагружались.

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

Есть механизм порталов и запросы разрешений через них

Которыми никто не пользуется. Серьёзно, я про эти порталы только на ЛОРе читал. Они только в Flatpak сейчас, не?

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

ff и obs через них экран хватают, например. Без всяких там flatpak

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

У меня разрешения никто не спрашивал в Wayland. OBS просто берет и хватает экран.

Осталось придумать, что делать с другими ресурсами. А также консольным софтом, софтом без dbus и так далее и так далее.

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

Ими пользуются все Wayland десктопы. Запрос может выводиться, например, при попытке расшарить экран, или дать приложению право работать в фоне. Там много чего. Они не только во Флатпаке и Снапе юзаются, но и в десктопе в целом. Штука весьма гибкая.

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

Запрос может выводиться

А он уже выводится? А при попытке system(“rm -rf ~/*”) он будет выводиться? Не? Вот я об этом и пишу: в лялексе нет механизма запроса разрешений.

Если на механизм безопасности можно покласть болт, это не механизм. Может, когда-нибудь это всё будет. Но сейчас этого нет.

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

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

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

А идея «придумаю все фичи сам с нуля не оглядываясь на прошлый опыт» верный способ изобрести оконный менеджер не для людей, а для инопланетян. И иронично, что когда система пошла в прод, постепенно все эти «ненужные» фичи впиливаются, просто в час по чайной ложке.

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

Так все его провокационные треды на таких маневрах и построены

Так все отмазы лялексоедов и фанатов вяленда на этом и построены. Если какой-то чел где-то написал спеку, это не значит, что механизм или фича есть. Она есть, когда ею можно воспользоваться и она реально работает. Желательно, без трёхчасового пердолинга.

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

А при попытке system(“rm -rf ~/*”) он будет выводиться?

А чтобы не было такого - придумали системы с read-only корнем.

Вот я об этом и пишу: в лялексе нет механизма запроса разрешений.

4.2

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

и реализовать настолько базовые фичи, что их реализовали аж в трех оконных системах

Не протокольное это дело, а композиторское!

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

А чтобы не было такого - придумали системы с read-only корнем.

причём тут корень лол? Смотри внимательно.

4.2

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

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

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

Это в метрах) ясно все с тобой, в общем

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

Смотри внимательно.

Смотреть, да еще внимательнее? Ты за кого его держишь))

Я вчера одну хрень гуглил и попал на тему на ЛОРе. Это прям ода ЛОРу и всему базар-девелопменту под линем.

Почему gcc не версионирует свой рантайм?

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

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

s-warus ★★★
()
Ответ на: комментарий от Shadow

И это ужасно. Потому что в ситуации "есть 14 конкурирующих стандартов" теперь «есть 15 конкурирующих стандартов, а у 15го ещё 10 конкурирующих реализаций».

При том, что Wayland принёс и определённые улучшения (например, поддержку разных DPI на разных экранах, уменьшение input lag), он внёс очень большой вклад во фрагментацию десктопного Linux. Потому что, во-первых, на порядок выросло число фич, которые должно реализовать каждое DE (что там в иксах было? декорации окон и трей? мб ещё буфер обмена, всё, а сколько протоколов сейчас в Wayland?), во-вторых, из-за долгого принятия в апстрим стандарта важных фич, появляются DE-специфичные расширения (например, захват экрана во всяких Zoom работает только в Gnome).

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

Это в метрах) ясно все с тобой, в общем

знаешь, со мной такое впервые, когда мой собеседник на ЛОРе сходу сам признаёт, что он – один большой Х~%. Обычно приходится ему это доказывать.

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

Прибежище для говнокодеров мнящих себя архитекторами и неиссякаемый источник хорошего настроения для остальных.

Да, кабы это еще не тянули по умолчанию в почти все дистры…

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