LINUX.ORG.RU
ФорумTalks

А вы помните бесячий баг иксов, который всегда раздражал?

 , , , ,


2

3

Речь идёт про какие-то там жонглирования состояниями фокусов при открытых контекстных меню, которые вызываются по правой кнопке мыши или через главное меню программы, там где File, Edit, View, Help и т. д.

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

С полгода назад я установил Ubuntu 22.04 LTS с дефолтным Wayland-сеансом и вот только сейчас заметил что куда-то пропало то раздражение, которое я всегда испытывал при попытке заскринить что-либо в Linux. Оказывается что баг этот зафиксили! К хорошему быстро привыкаешь, поэтому я переключился на X.Org-сеанс и решил протестировать поведение в различных приложениях там. Кто знает, вдруг и там пофиксили эту срань?! Ага, хрен там:

  1. Gedit
    Открываем контекстное меню по правой кнопке мыши, нажимаем Prt Sc – ноль реакции.
    А вот главное меню программы по кнопке «бутерброд» даёт себя скриншотить.
  2. GNOME Terminal
    Поведение аналогичное Gedit.
  3. Nautilus
    Поведение аналогичное Gedit.
  4. Firefox
    Открываем контекстное меню по правой кнопке мыши, нажимаем Prt Sc – меню пропадает.
    Открываем главное меню по нажатию Alt, открываем любой пункт, нажимаем Prt Sc – меню тупо закрывается.
  5. Chrome
    Открываем контекстное меню по правой кнопке мыши или главное меню по кнопке «бутерброд», нажимаем Prt Sc – оно пропадает и лишь изредка в скриншот попадает белый прямоугольник без текста.
  6. Qt Creator
    При открытом контекстном или главном меню нет вообще никакой реакции на нажатия кнопки Prt Sc.
  7. GIMP
    Аналогично, нет реакции на Prt Sc при открытом главном и контекстном (оно там тоже главное) меню.
  8. Telegram
    Поведение аналогичное тому что в Qt Creator, ничего не работает, хотя казалось что там все меню имплементированы поверх QPainter.

На Wayland-сеансе перечисленных выше проблем просто не наблюдается. Всё удобно и комфортно, скриншоты контекстных и главных меню, как и различных всплывающих элементов в приложениях запущенных как под Wayland, так и под XWayland делаются без какого-либо пердолинга, раз и готово:

https://baat.exlmoto.ru/~exl_lab/screens/Wayland_Menus.png

Напомните пожалуйста, какую там шизу публикуют различные луддиты в оправдание этого иксового бага? И ладно бы этот баг был какой-то там недавней регрессией, так нет, вот уже как ~20 лет в этом иксовом позоре Linux-десктопа он присутствует и всех раздражает. Я его ещё во времена KDE 3 и GNOME 2 помню, а воз и ныне там.

Со спокойной душой переключаюсь обратно в Wayland-сеанс: да там тоже есть шероховатости и свои глюки, но то, что вот это дурацкое поведение и детские баги иксового говнокода наконец-то подфикшены, не может не радовать.

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

Баг иксов это доисторический файловый менеджер

Это который? И какое вообще отношение ФАЙЛОВЫЙ менеджер имеет к графическому серверу?

Тот же вопрос про терминал, но там я хотя бы догадываюсь, что ты имел в виду xterm.

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

Эта проблема есть только на Wayland.

FTFY.

Ещё раз, по буквам: если такая проблема сейчас есть, то учитывая, что она затрагивает далеко не все HiDPI-экраны, утверждать, что «на HiDPI в Wayland работать невозможно» попросту некорректно.

А вот легаси в виде X.Org, почему-то, корректно обрабатывает эту ситуацию. […] Я под иксами в kde сказал «скейлить в 150%», и всё ок.

GTK-приложения не скейлятся на 150%. А значит, захотите вы рисовать в Inkscape, редактировать фото в RawTherapee, писать код в Geany, запускать виртуалки в virt-manager, … — и получите часть приложений в 150%, а часть осталась в 100%. «Корректно обрабатывает», «всё OK», ага.

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

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

Человек часто пользующийся этим не будет чувствовать никакого дискомфорта.

Читаю и просто диву даюсь. Подскажи, а срать себе в ладони и затем относить дерьмо в унитаз, тоже не будет вызывать дискомфорта со временем, если часто пользоваться таким способом?

На локалхосте номером 1 идет удобство и только потом уже мифическая безопасность.

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

Ещё раз, по буквам

читать научись не по-буквам, а хотя бы словами, раз уж не предложениями. Я не говорил «на хайдипиай невозможно». Что ты из «несколько моих хайдипиайных» додумал «все хайдипиайные» — это сугубо твои проблемы.

GTK-приложения не скейлятся на 150%

Снова читать не умеешь. У меня нет GTK приложений. Я в KDE поставил «1.5» и проблем не испытываю. Сейчас лень (на текущем компьютере масштаб не дробный), но потом как-нибудь посмотрю как вирт-менеджер выглядит на 1.5

Обе линии… Разная наблюдаемая толщина …

Не проблема иксов. Проблема тулкита или приложения. Зачем масштабировать горизонтальную линию в меню? Зачем область для рисования масштабировать? Шрифты на твоих же скриншотах, вроде, нормально выглядят - проблем с линиями нет.
И снова, на иксах эти баги решить можно - регистрируй багрепорты. С вяленым ты обречён на мыло.

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

Снова читать не умеешь. У меня нет GTK приложений. Я в KDE поставил «1.5» и проблем не испытываю

До вас всё ещё не дошло, что ваше «150%» к X отношения не имеет от слова «совсем»? — иначе масштабировались бы все приложения, включая GTK.

Scale делают тулкиты — в вашем случае Qt5 — и отдают X-серверу уже отрендеренную картинку, которую тот просто показывает. Ничто не мешает им делать это хоть под X11, хоть под Wayland, хоть под NeXTSTEP каким-нибудь. Вот пример VLC со scale 1.5, нативно запущенном в Wayland.

Scale средствами X — это xrandr -scale, при котором мыло похлеще Wayland-овского.

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

Это проблема дробного масштабирования. Целые значения, умноженные на 1,5, часто перестают быть целыми, а отобразить их нужно на целочисленной матрице пикселей.

Допустим, у нас есть две линии: 1 px и 2 px толщиной. Вы выставили 150%, и если вторая отмасштабировалась в 3 px нацело, то для первой получились 1,5 px. Есть несколько подходов, чтобы её отобразить:

  • Округлить до целого, в данном случае до 2. Но тогда если раньше вторая линия была визуально в 2 раза толще первой, то теперь будет лишь в 1,5 — получили искажение исходного изображения.

  • Смешать с фоном пропорционально соотношению размеров. В таком случае один пиксель из полутора будет отображён как есть, а второй будет смешан с белым фоном пополам — получим «мыло».

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

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

С вяленым ты обречён на мыло

У вас никакого диссонанса не возникает?

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

Ноутбук 15.6" 1080p

Это мягко говоря не hidpi, а как раз самый дерьмовый вариант. Кроме плясок с дробным масштабированием теряешь ещё и растровые шрифты, которые становятся слишком тонкими. Ну и конечно этот отстой стал дефолтом для ноутбуков, сразу после убожества 1366x768, которое все равно лучше, потому что там можно юзать любые растровые шрифты.

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

Т.е. вас не смущает, что gedit сверху запущен не нативно, а через X11? Очевидно, был какой-то баг с масштабированием таких окон.

Ну и вот вам два окна gedit — один экземпляр запущен нативно, а другой через Xwayland. Попробуйте определить, где какой.

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

Открываем контекстное меню по правой кнопке мыши или главное меню по кнопке «бутерброд», нажимаем Prt Sc – оно пропадает и лишь изредка в скриншот попадает белый прямоугольник без текста.

Ради интереса проверил, УМВР. Может у тебя руки из жопы?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Попробовал в других программах, действительно не работает. Но в Хроме же работает, т.е. как-то эту багофичу можно обойти.

Ну и в целом

который всегда раздражал?

только что узнал об этом от тебя.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Утром отвлёкся, забыл скриншоты прикрепить.

Вот оригинал: https://ibb.co/kDwdXnv Вяленый 150: https://ibb.co/gZQsKVz X11 150: https://ibb.co/JtQYbzF

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

Но ты дальше можешь искать отмазки, чтобы защитить смузихлёбов.

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

KDE на 1.5 под X11 отрисовывается нормально. Под Wayland — всё размыто.

KDE-проблемы.

Зачем в X11 KDE полагается на тулкит, а в Wayland пытается сама масштабировать композитором, вместо того чтобы точно так же полагаться на тулкит — вопрос к её разработчикам.

И да, Wayland в KDE — это что-то с чем-то. Подвигав ползунок масштабирования туда-сюда, получил вот это.

Подытоживая, к самому Wayland ваши проблемы отношения не имеют. Что в X11, что в Wayland можно масштабировать как средствами графической системы, так и полагаясь на тулкиты. В первом случае на обеих платформах будет мыло, а во втором на обеих платформах всё будет нормально.

А вам следовало бы для начала разобраться в матчасти, прежде чем вступать в спор о том, в чём вы слабо разбираетесь.

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

а Drag-and-Drop в Xwayland<->Wayland потенциально возможен?

В GNOME вроде работает: спокойно перетаскиваю картинки из работающего в Wayland Nautilus в работающий в Xwayland Chrome. Сейчас попробовал перетащить текстовый файл из запущенного в Xwayland Nautilus в редактор, запущенный в Wayland, — открылся.

А что, у вас с этим проблемы? В каком окружении?

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

А теперь сравни свои скриншоты с моими. У тебя контекстное меню ни на одном скриншоте нормально не отрисовано. У меня под иксами и в 1, и в 1.5 оно нормально выглядит.

Подвигав ползунок масштабирования туда-сюда, получил вот это.

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

И да, Wayland в KDE — это что-то с чем-то

Ссылкой на эталонную реализацию протокола не поделишься?

mogwai ★★★★★
()

иксовый баг ну очень сильно мешал сделать нормальный скриншот области экрана или окна в то время, когда активно контекстное меню

Совершенно не проблема. Scrot с таймером и любой просмотрщик картинок. Потом делаем скриншот области. Костыльно, но несложно.

Тред не читал.

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

У тебя контекстное меню ни на одном скриншоте нормально не отрисовано. У меня под иксами и в 1, и в 1.5 оно нормально выглядит.

Это потому что вы показываете меню рабочего стола, а Plasma по умолчанию игнорирует Qt scale (иными словами, отображается в 100%) — поэтому и пункты меню такие узкие, и значки мелкие. Откройте приложение (Dolphin, Kate, …) и попробуйте снова.

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

Вот оригинал: https://ibb.co/kDwdXnv Вяленый 150: https://ibb.co/gZQsKVz X11 150: https://ibb.co/JtQYbzF

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

Почему иконки в меню не отресайзились при 150? Это ведь неправильно.

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

Вот 150% в X11 — нормально, используется масштабирование тулкитом.

А вот в Wayland с QT_SCALE_FACTOR=1.5 — нормально, используется масштабирование тулкитом.

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

Видимо потому и отказались от её воплощения, решив что в дробных промежутках по типу 1.5 и 2.5 лучше всего увеличивать размер шрифта.

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

Да где уж там нормально, когда сепараторы (линии разделения) в менюшках разной толщины?

В данном контексте речь шла исключительно о шрифтах. Про визуальные артефакты я уже писал выше.

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

Почему иконки в меню не отресайзились при 150? Это ведь неправильно.

Или неправильно как в GNOME? Включи 1.5 и посмотри на значки в сайдбаре. Они размытые становятся.

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

Кого вы пытаетесь обмануть? Думаете, никто не заметит, что на якобы 150% размер пунктов меню и значков в точности такой же, как на 100%? Вы просто увеличили DPI шрифтов и выдаёте это за 150%. Вот ваши снимки рядом для наглядности: https://ibb.co/HNR8wMf.

А вот как в реальности выглядят 100% с увеличенными шрифтами и настоящие 150%: https://ibb.co/ct697fX.

И вы ещё что-то там заикались об отмазках…

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

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

Я выше просил ссылку на эталонную реализацию вяленного. Её нет? Раз нет, смотрим как оно в мейнстриме сделано. Смотрим кеды и, если в кедах плохо, смотрим это место в гноме.

150% Кеды под иксами выглядят корректно и чётко. При «настоящих 150%» Кеды под вяленым - всё размыто. Запускаем гном — там же гадость.
Ещё и разделители в меню разной толщины получаются.

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

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

А что, у вас с этим проблемы? В каком окружении?

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

Но то что это вообще работает - приятно радует.

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

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

Неважно, что вы там показывали раньше. Есть медицинский факт: у вас размеры пунктов меню и значков одинаковые в заявленных 100% и 150%, поэтому или вы пытаетесь выдать 100% с увеличенными шрифтами за 150%, или у вас масштабирование просто не работает.

(А перед этим вы показывали меню Plasma, а не приложений, а она, как я уже говорил, по умолчанию игнорирует настройки масштабирования Qt.)

150% Кеды под иксами выглядят корректно и чётко. При «настоящих 150%» Кеды под вяленым - всё размыто.

Если у вас на самом деле не работает масштабирование интерфейса, а лишь увеличиваются шрифты, то то же самое элементарно сделать и в сеансе Wayland: оставляете масштаб 100% и увеличиваете DPI шрифтов в 1,5 раза (96 * 1,5 = 144) — получите ровно то, что на ваших снимках.

Rootlexx ★★★★★
()

А вы помните бесячий баг иксов, который всегда раздражал?

не-а, не помню

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

"скриншоты не нужны", не?

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

Как это неважно? Важно. Пользователь один и тот же ползунок двигает. То, что в иксовом сеансе это влияет на масштабирование шрифтов, а под вяленым включает скейлинг — конечного пользователя вообще волновать не должно.

Почему-то же под вяленый они скейлинг задействовали, а не шрифты масштабируют. Получается нормальный результат? Нет.

Хоть у кого-то получилось? Нет. Или давай скриншот с 1.5 под вяленым без размытости. Или вяленый — г-но. Если это разработчики KDE или GNOME виноваты, а вяленый торт, то я всё ещё жду ссылку на реализацию, где функциональность эта работает корректно.

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

Или давай скриншот с 1.5 под вяленым без размытости.

Уже давал с VLC в GNOME/Wayland с полуторным масштабированием средствами Qt безо всякой размытости. И аналогичный Dolphin показывал в KDE/Wayland.

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

Rootlexx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.