LINUX.ORG.RU
ФорумTalks

[да что ж такое] Самый эпичный баг после 12309


0

0

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

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

Но вторым по эпичности багом я считаю всем известную вещь: невозможность свернуть полноэкранное приложение (игру), т.к. оно полностью перехватывает весь ввод с клавиатуры, занимая X-сервер и игнорируя WM. В то же время в оконном режиме все WM-сочетания работают корректно. Это действительно эпичный баг (или фича?), т.к. висит уже невероятное количество лет и лежит буквально на поверхности, а также стоит на пути продвижения линукса на десктопы (а какой может быть десктоп без возможности нормального запуска игр?).

Почему в 2010 году до сих пор приходится задумываться об этом? Почему разработчикам иксов на эту проблему пофигу, когда форумы забиты вопросами на эту тему? Что мешает им переписать хотя бы часть протокола иксов или выпустить очередной XFix, чтобы изменить алгоритм перехода приложения в фуллскрин?

Я видел парочку игр, которые таки сворачиваются на Alt+Tab — Osmos и Quantz. Но почему об этом заботиться должны производители игр, разве это не дело разработчиков X-сервера?

★★★★★

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

Andru ★★★★
()

И да, это проблема не X сервера, а разработчиков, кои используют этот режим. Есть ведь XRandR и WM'ные фичи. Хотя проблема тут немного глубже - не весь зоопарк WM'ов адекватно воспринимает и обрабатывает _NET_WM_STATE_FULLSCREEN. К тому же когда я занимался этой фигней, еще и дровишки для ATI(пресловутый fglrx) отказывались вменяемо функционировать и обновлять содержимое экрана при потере окном фокуса в FullScreen(хотя может тут я немного нашаманил, ведь Mplayer с OpenGL-выводом работает нормально).

Andru ★★★★
()

Но вторым по эпичности багом я считаю всем известную вещь: невозможность свернуть полноэкранное приложение (игру), т.к. оно полностью перехватывает весь ввод с клавиатуры, занимая X-сервер и игнорируя WM. В то же время в оконном режиме все WM-сочетания работают корректно. Это действительно эпичный баг (или фича?), т.к. висит уже невероятное количество лет и лежит буквально на поверхности, а также стоит на пути продвижения линукса на десктопы (а какой может быть десктоп без возможности нормального запуска игр?).

Почему в 2010 году до сих пор приходится задумываться об этом? Почему разработчикам иксов на эту проблему пофигу, когда форумы забиты вопросами на эту тему? Что мешает им переписать хотя бы часть протокола иксов или выпустить очередной XFix, чтобы изменить алгоритм перехода приложения в фуллскрин?

Это старинная фича SDL =). Соответственно и пинать надо разработчиков SDL.

Я видел парочку игр, которые таки сворачиваются на Alt+Tab — Osmos и Quantz. Но почему об этом заботиться должны производители игр, разве это не дело разработчиков X-сервера?

X-сервер позволяет и захватывать вообще весь ввод, и не захватывать весь. Ровно как и WinAPI. Судя по гуглю, ни Osmos, ни Quantz не используют SDL для вывода графики и перехвата ввода.

Deleted
()

ещё urbanterror может сворачиваться

DoctorSinus ★★★★★
()

Попытка построить внешний вид приложений с точки зрения пользователя:

Где будут появляются сообщения? В статус-баре, всплывающих окнах, отдельном окне/фрейме, в систрее, в логах или еще где-то? Нужно ли будет как-то на них реагировать, или вернутся к ним позже? Пользователь ничего этого не знает, а как следствие ему надо изучать каждое приложение отдельно, учитывать модель интерактивности, предложенную программистом. Пример: в малозначительной части приложения ошибка, которая вызывает массовый вызов showMessageBox (например, по таймеру), в результате чего экран пользователя покрывается однообразными сообщениями и работать с приложением становится невозможно, но если бы пользователь мог перенаправить эти сообщения в /dev/null, то он смог бы продолжить работу, лишившись только части функционала приложения.

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

Порой приложение долго работает с какими-то файлами, скрипит винтом, но совершенно ничего не говорит: может памяти нехватает, может оно временные файлы создает (кстате, за это я бы отрывал яйца авторам, особенно башескриптоприложений), может что-то читает или перебирает. А пользователь опять остается безучастным, хотя получить список дескрипторов, открытых приложением - несложно, даже более того, пайповая структура взаимодействия позволяет контролировать отдаваемый контент, а значит следить и за выполнением приложения в какой-то мере. Однако, нажав F3 в mc на имени архива (просто пример, встречается много где) мы почему-то не видим никаких процессов-индикаторов, только кулера начинают крутится сильнее, сигнализируя о 100% загрузке CPU, но сколько ждать - неизвестно, порой не знаешь, может быть проще завершить процесс и перезапустить его из шелла, дабы видеть хоть какие-то сообщения? При конвертировании фильма в ffmpeg показывают количество обработанных кадров, а % готовности видимо надо считать в уме?

simple_best_world_web_master
()

Почему в 2010 году до сих пор приходится задумываться об этом? Почему разработчикам иксов на эту проблему пофигу, когда форумы забиты вопросами на эту тему? Что мешает им переписать хотя бы часть протокола иксов или выпустить очередной XFix, чтобы изменить алгоритм перехода приложения в фуллскрин?

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

mv ★★★★★
()

пишет вам пятилетняя девочка Маша...

херасе у тебя понятия об эпичности багов.

vostrik ★★★☆
()

Не любое полноэкранное приложение. И не любое SDL-приложение.

Тот же sauerbraten легко сворачивается и переключается из fullscreen'а, а openarena не может быть переключена/свёрнута из оконного.

Или darkplaces, который может быть свёрнут/переключён и nexuiz, который не может, хотя второй основан на первом.

AITap ★★★★★
()

Уже писали. Пока ничего не изменилось. Всем и так хорошо. Так что теперь я запускаю игры в окне, но развёрнутыми. Это если они такое умеют.

Deleted
()

Второй по эпичности — залипающие клавиши в KWin, а то, что вы написали — какая-то маргинальная проблема геймеров. Если развернуть на весь экран mplayer, alt+tab работает.

name_no ★★
()

А, имхо, баг с хоткеями Ctrl(Alt)+Shift+что-нибудь при переключении раскладки по Ctrl(Alt)+Shift более плохой, чем этот. (Сам я хоть и переключаю по капслоку, но всё равно.)

Но они оба связаны с иксами...

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

> Это старинная фича SDL

А, то есть этим страдают только SDL-игры? Хм, ладно, тогда чем думают разработчики SDL? (:

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

> Всем разработчикам на тебя пофиг. Они о твоём существовании даже не догадываются. Зачем им забоиться о причудливых желаниях того, кто для них не существует?

Проблема есть только у меня?

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

> Второй по эпичности — залипающие клавиши в KWin

Гномерам пофиг (:

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

Помнится и в винде редкая игра нормально сворачивалась. Хотя может сейчас и изменилось что-то, не знаю.

Да и зачем вообще игру сворачивать-то? Порнушный квест от родителей прятать?

На приставках играть надо.

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

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

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

> Не любое полноэкранное приложение. И не любое SDL-приложение.

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

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

> Надо делать проще

запускать гаму в отдельно Х сервере


Нифигасе проще (: кстати при запуске еще одного хсервера у меня он ругается.

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

> А, имхо, баг с хоткеями Ctrl(Alt)+Shift+что-нибудь при переключении раскладки по Ctrl(Alt)+Shift более плохой, чем этот. (Сам я хоть и переключаю по капслоку, но всё равно.)

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

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

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

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

> Помнится и в винде редкая игра нормально сворачивалась

Не, сворачивались-то они нормально. Только не все разворачивались (: кстати, у вайна с этим дела гораздо лучше обстоят, тут уж ничего не скажу.

Да и зачем вообще игру сворачивать-то?


Ответить в IM'e, например. Или ответить на звонок из Skype. Или... да дофига вариантов. И да, не надо приводить в качестве аргумента «не работает — не нужно» и «в венде все еще хуже». Мне пофиг как там в венде, я хочу чтоб в линуксе все хорошо было (:

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

Может быть, наоборот, разработчикам игр стоит задуматься о «необходимости» полного перехвата клавиатуры? Иксы предоставляют возможность не делать этого, о чём свидетельствуют существующие исключения.

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

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

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

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

> Для того, чтобы во время игры поговорить в ИМ.

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

simple_best_world_web_master
()

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

Кстати, под винду тоже есть игры, которые перехватывают ВСЕ нажатия клавиш, даже Alt+F4.

melkor217 ★★★★★
()

Вот он этот баг - висит аж с 2005го:
http://bugs.freedesktop.org/show_bug.cgi?id=4286

фичей не считается, но фиксить как-то не торопятся - последний комент:

Peter Hutterer 2009-09-07 17:13:38 PDT
Current idea is to route around that with grab priorities. i.e. the WM can
implement such grabs with a higher priority than the applications and thus
override an application grab.

Possibly scheduled for XI2.1.

bender ★★★★★
()

А linux сам по себе тут никаким боком.

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

Проблема есть только у меня?

Даже если не только у тебя, почему её кто-то должен фиксить? Люди пишут код for fun, либо за деньги корпораций. В первом случае, если у них нет фана фиксить твою (и не только) проблему, то она не будет пофикшена. Во втором случае деньги платятся за решение проблем корпораций, опять не твоих.

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

Не буду эпично рассказывать что это плохо и мир несправедлив, но разработчики пишут софта ДЛЯ ПОЛЬЗОВАТЕЛСЯ. А многие айтишники от этого отдалились, возомнив что они первопричина. Отсюда слова «хомячки» и «биореактор»

vertexua ★★★★★
()

у меня в wmii все работает :)

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

> но разработчики пишут софта ДЛЯ ПОЛЬЗОВАТЕЛСЯ.

Just for Fun пишут для себя. Для пользователя пишут за деньги, которые этот пользователь платит.

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

Принцип работы иксов: «действовать по нажатию»

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

Не буду эпично рассказывать что это плохо и мир несправедлив, но разработчики пишут софта ДЛЯ ПОЛЬЗОВАТЕЛСЯ. А многие айтишники от этого отдалились, возомнив что они первопричина. Отсюда слова «хомячки» и «биореактор»

Разработчики в оупенсоурсе пишут бесплатный софт, главным образом, для себя. Я лично, когда пишу софт не по работе, то пишу его, ориентируясь только на свои нужды, исходя из своих представлений о том, как оно должно работать. Кому что не нравится - шлют патчи. Один кекс из Франц Инк (которые Аллегро ЦЛ пилят) вообще сказал по поводу одного проекта, что он неправильно сделан и форкнул ;)

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

Собственно, ровно также поступаю и я: не нравится, зло не нравится, как ведёт себя утиль в нужном мне месте - качаю исходник, правлю, шлю патч в мейллист или автору.

mv ★★★★★
()

Когда же у школоты закончатся каникулы...

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

>Не буду эпично рассказывать что это плохо и мир несправедлив, но разработчики пишут софта ДЛЯ ПОЛЬЗОВАТЕЛСЯ. А многие айтишники от этого отдалились, возомнив что они первопричина. Отсюда слова «хомячки» и «биореактор»
Для какого пользователя, сферического в вакууме? Разработчик вполне справедливо считает себя пользователем, и пишет софт как минимум софт для себя. А опрашивать каждого хомячка что же он, его величество, желает, никаких сил не хватит, тем более я гарантирую, что хомячки навалят кучу противоречивых требований, причем противоречия будут и в одной голове отдельно взятого хомячка, потому что он не представляет себе логику работы приложения.

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

> Кстати, а что мешает переключать раскладку при отпускании указанных клавиш, как это сделано в венде?

Ну вторым вариантом я это и предлагал в принципе.

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

> Может быть, наоборот, разработчикам игр стоит задуматься о «необходимости» полного перехвата клавиатуры? Иксы предоставляют возможность не делать этого, о чём свидетельствуют существующие исключения.

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

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

если перехватывать - для каких целей тогда получается пишут SDL и подобное?

frame ★★★
()

Разработчики америкосы и предпочитают играть на консолях, а на компьютерах работать? Не вижу в этом ничего плохого. Ибо консоль стоит 200$ (б/у xbawx) против 1000-1500 за игровой ПК.

svr4
()

Все понимают, что линукс пока еще довольно далек от десктопов.

Щтоаааааа? О_о Да ты еретик! Линукс - идеален и для десктопа и для нетбука и для ноутбука. Он лучше любой Венды, тебе это скажут 99,9% ЛОРовцев :)

Но не я :)

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

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

1. Покажите мне пожалуйста, как консольщики играют в стратегии.

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

Так что ваша консоль только для игр а-ля НФС или Краш Бандикута - не более.

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

> тебе это скажут 99,9% ЛОРовцев

На лоре поклонников венды пятая часть наверно.

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

> Покажите мне пожалуйста, как консольщики играют в стратегии.

Кому неудобно с геймпада играть покупают мышку и играют. Но стратегии сейчас и на компе вымирающий жанр.

Майкрософт недавно отменила он-лайн турниры по стрелялкам

Хочется пруфлинк. Но в любом случае все правильно сделали.

Так что ваша консоль только для игр а-ля НФС или Краш Бандикута - не более.

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

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