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-сеанс: да там тоже есть шероховатости и свои глюки, но то, что вот это дурацкое поведение и детские баги иксового говнокода наконец-то подфикшены, не может не радовать.

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

У меня проблемы с фокусом появились в версии 18.04, до этого (в 12.04) никаких проблем не было. И, как я понял, связано это с появлением Gtk3 (вместо Gtk2).

Конкретно этот сабжевый баг – родовая травма иксов, оно было там даже наверное всегда. Аффектятся как приложения на GTK+2,3,4 так и на Qt 4,5,6.

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

Эээ… Во первых это не баг.

А что это, фича? Почему на Wayland и macOS нет этой идиотии и не нужны никакие костыли-задержки?

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

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

R_He_Po6oT ★★★★★
()

Как в Wayland поменять настройки устройств ввода (клавиатуры, мышки, тачпада)?

man libinput

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

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

goingUp ★★★★★
()

Век живи — век учись. Точно ведь, проверил — есть такой баг. 25 лет с линуксами не знал о его существовании, никогда не требовалось сшотать меню.

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

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

Стоп. С каких пор модульность сервера стала проблемой протокола? Это детали имплементации конкретных серверов. Если какой-то сервер сделает плагины для всего этого — будет всё юниксвейно. Можно ещё сделать кроссДЕ-шный стандарт для них, на который всем будет пофиг. Но вообще монолитный софт проще писать, поэтому чаще так.

Встраивать IPC в wayland только потому, что в иксах от этих самых иксов в 2к22 году используют почти исключительно IPC — противоположность юниксвею.

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

С каких пор модульность сервера стала проблемой протокола?

С таких, что в одном голом протоколе нет смысла. Для функционирующего десктопа необходим комплекс протоколов/API/интерфейсов плагинов. X11 предоставлял этот комплекс включая плагины серверных видеодрайверов со стабильным API/ABI.

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

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

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

Почему на Wayland и macOS нет этой идиотии

На Wayland — потому что он проектировался с оглядкой на эту проблему в том числе. Если бы там оставалась та же проблема, то это был бы великий фейл. Кстати, проблема с DPI, похоже, будет решаться костылями, хотя могли бы и придумать решение поадекватнее, чем «ой, всё!»

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

i-rinat ★★★★★
()
Ответ на: комментарий от X512

X11 предоставлял этот комплекс включая плагины серверных видеодрайверов со стабильным API/ABI.

Ты смешиваешь X.Org, реализацию сервера с поддержкой X11 и протокол X11. В самом протоколе, очевидно, ни про какие плагины речи нет. Плагины для X.Org не подойдут к другой реализации икс-сервера.

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

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

Ты смешиваешь X.Org, реализацию сервера с поддержкой X11 и протокол X11.

По факту нет никакого отдельного протокола X11. Протокол изначально разрабатывался совместно с реализацией в рамках проекта Athena. Можно и сейчас скачать эти исходники реализации, включая предыдущую версию X10. Альтернативные реализации протокола X11 существуют, но они существенно отстают по полноте реализации и функциональности и практически не используются. Так что я убеждён что протокол X11 и код реализации сервера восходящий к проекту Athena – это единое целое и глупо их делить.

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

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

Навскидку: запустить x11vnc и снять скриншот через vnc

vncsnapshot - A utility that takes JPEG snapshots from VNC servers

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

Это ещё ладно. А вот если приложение зависнет при открытом контекстном меню, что в моей практике несколько раз случалось, то ни кнопку нажать, ни системный монитор открыть — только переключаться в tty да прибивать его оттуда.

Желающие могут проверить, запустив sleep 15; pkill --signal STOP <имя приложения>, и пока sleep выполняется, переключиться в соответствующее приложение и открыть контекстное меню.

В Wayland-сеансе же что в GNOME, что в KDE остаются доступны глобальные сочетания клавиш, вроде нажатия Super в первом (переход в режим обзора) и Ctrl+Esc во втором (открытие менеджера процессов).

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

Это ещё ладно. А вот если приложение зависнет при открытом контекстном меню, что в моей практике несколько раз случалось, то ни кнопку нажать, ни системный монитор открыть — только переключаться в tty да прибивать его оттуда.

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

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

Конкретно этот сабжевый баг – родовая травма иксов, оно было там даже наверное всегда.

Не было. Например, в Geany/Gtk2 при переключении на другую вкладку фокус переходил на редактор (как и должно быть), а в Geany/Gtk3 - фокус остаётся на вкладке (что пиzd$ts как бесит). Код Geany при этом особо не менялся - чуваки только заменили вызовы Gtk2 на Gtk3.

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

https://imgur.com/a/JRt4Eo6
Шо?

Да, меню пропадает при смене фокуса. Нет, оно пропадает после скриншота и на скрин попадает.

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

Это проблема дистрибутивов, которые его без инфраструктуры дают пользователям.

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

Окей. Где тогда описания API/ABI плагинов X11?

И ещё, в каком месте API/ABI были стабильными?

i-rinat ★★★★★
()
Ответ на: комментарий от Novator

Не было. Например, в Geany/Gtk2 при переключении на другую вкладку фокус переходил на редактор (как и должно быть), а в Geany/Gtk3 - фокус остаётся на вкладке (что пиzd$ts как бесит). Код Geany при этом особо не менялся - чуваки только заменили вызовы Gtk2 на Gtk3.

Вот я не поленился, взял дистрибутив RHEL 4, который вышел в 2005 году и был актуален до 2009 года, с ванильным и древним GNOME 2 без всяких GTK+3 и проверил присутствие этого бага там:

https://baat.exlmoto.ru/~exl_lab/movies/X11_Screens_PrintScreen.webm

Жмём Print Screen при любом открытом контекстном меню и ничего не работает. Эта хрень с фокусами как уже сказали выше именно в иксах.

EXL ★★★★★
() автор топика

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

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

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

// Удивился мотофану, я там был модератором или каким-то ведущим раздела кучу лет назад, правда ник уже не вспомнить. А ты там администратор, оказывается. Мир тесен, но я не думал что оно все ещё живое.

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

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

Вроде как нет, но нужно будет проверить. Просто лень менять комбинации, жонглировать туда-сюда сеансами. Будет время – посмотрю.

но я не думал что оно все ещё живое.

Да. Хочу сохранить этот форум как можно дольше во времени. Сделать что-то типа архива. Если у тебя сохранились какие-нибудь файлы тех времён в каких-нибудь BackUp’ах – будет здорово если ты мне их отправишь.

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

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

Проверил. При использовании виндовой комбинации Alt+Shift в X.Org-сеансе подобной проблемы в этом текстовом поле не наблюдается.

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

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

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

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

В иксах криво обрабатывается супер+пробел. Попробуй включить дополнительные типографские символы и переключение раскладки по супер+пробел.

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

Баг заключается в чём? В иксах не предусмотрено, что такие вещи надо решать и не написан соответствующий код - не баг, отсутствие функционала и мнение, что не им этим заниматься. В кутях не предусмотрено и поэтому не написан соответствующий код - не баг, отсутствие функционала. А в гтк написан, но работает криво - вот где баг! Иксы не при чём и вейланд не при чём, тут даже оконный менеджер скорее иноват, а не они. Это написано в самих библиотеках туллкитов и только в них работает или не работает. Устраивать на этом срач что лучше, иксы или вейланд - глупо. И очень удивляет, прямо, детское хейтерство и слепая, циплячья неразборчивость ТСа. Казалось бы, уж ему должно быть понятно откуда вилы?

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

но активное меню перед этим закрывается.

Фича же.

В Window Maker, в gtk 1 и кажется gtk2 - detachable menu для такого.

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

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

Смешались в кучу кони, люди…

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

(И нет, включение XF86Ungrab не является решением, поскольку это дыра в безопасности.)

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

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

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

В иксах на Spectacle точно такие же баги.

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

Наверное по той же причине, почему в Linux нельзя повесить переключение раскладки на Ctrl+Shift без того, чтобы сломать все хоткеи

Вы имеете в виду в консоли? А то в KDE УМВР

tiinn ★★★★★
()

Хз о чем ты. Всегда пускал скрота или KScreenshot/Spectacle с дилеем в 5 секунд и никогда не имел никаких проблем: Alt+F2 -> spectacle -c -d 5000 -> за пять сек открываешь все меню и все что нужно -> когда скриншот сделался диалоговое окно с кепчуром открывается… Profit!

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

Ты так и не понял, почему я и не только, тебя подтроллить стараются. Умный ты человек и никто с этим не спорит и не будет.

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

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

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

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

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

А сугробо по теме - думал ты сам троллишь сначала. Первый раз из темы узнал, что это «баг». Поставить на 5 сек таймер скрина, вообще прям проблема?! Прям, как сказали: «киллер фича wayland» :)

И тема всерьёз обсуждается на несколько страниц. Вы серьёзно?

Upd. С мобильного пишу, могут быть ошибки автозамены.

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

Иксы лучше вяленого. Как обладатель стильных модных молодёжных HiDPI мониторов говорю. На них на современном вяленом работать невозможно. Под иксами хорошо. Тиринга не давно не видел. 2 системы, одна с rx580, вторая с rtx3060 на блобе.

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

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

Как обладатель стильных модных молодёжных HiDPI мониторов говорю. На них на современном вяленом работать невозможно

Хм, а можно раскрыть тему? А то работаю в GNOME/Wayland на экране с 243 ppi и никаких проблем не испытываю.

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

Ноутбук 15.6" 1080p и к нему монитор 27" 2160p. Комфортный масштаб 1.5. Когда GNOME использовал, в нём поддержки не было. Вернее была, но экспериментальная, и то тут то там вылазили косяки и мыло. В KDE проблем нет, но мыло. Под иксами в KDE картинка идеальная и на 1, и на 1.5

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

Вероятно проблемы с масштабированием. Я тоже не сталкивался, но вайлэнд умеет только в целочисленное масштабирование. Как мне объяснили здесь - x1,5 работает как x3/x2

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

Да. И именно из-за 1.5 = 1*3/2. Чем они думали, когда стандарт без учёта вариативности ppi утверждали - я не знаю

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

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

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

Ноутбук 15.6" 1080p и к нему монитор 27" 2160p. Комфортный масштаб 1.5.

А, ну так сразу и писали бы, что вы о дробном масштабировании. Эта проблема есть только на недо-HiDPI экранах, чего явно недостаточно, чтобы заявлять, что «на HiDPI в Wayland работать невозможно».

(Вроде в Mac OS тоже используется подход с отрисовкой в большем разрешении и последующим уменьшением — там тоже мыло?)

Под иксами в KDE картинка идеальная и на 1, и на 1.5

GTK-приложения всё равно масштабироваться не будут и останутся на 1×, т.е. единообразия не будет. Плюс то тут, то там будут вылазить ошибки округления (разная наблюдаемая толщина одинаковых линий).

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

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

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

FTFY. А вот легаси в виде X.Org, почему-то, корректно обрабатывает эту ситуацию.

Вроде в Mac OS тоже

мыло. На чём угодно с ощутимо отличным ppi от их дисплеев. Смузихлёбы на их опыт, похоже, и опирались. Забыв, что линукс не только на макбуках запускаться должен.

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

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

Я бы в таком случае

Как-нибудь выкрутился, лишь бы не признавать кривость вяленого (как протокола, а не конкретной его реализации). Я под иксами в kde сказал «скейлить в 150%», и всё ок.

ЗЫ А мониторы которым необходим 2,5 или 2,75 - они пере-hidpi и тоже плохие, ибо вяленый в них не умеет?

mogwai ★★★★★
()
Последнее исправление: mogwai (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.