LINUX.ORG.RU
ФорумTalks

По поводу Alt-Tab в Linux

 , ,


0

2

Народ жалуется тут постоянно, что в Linux'e Alt-Tab с fullscreen приложения на desktop не возвращает оригинальное разрешение экрана.

Есть такой баг, багу уже восемь лет стукнуло (вообще то все 30).

Народ предлагает написать патчи для всех WM (window manager), для Wine, и для всех приложений, которые делают fullscreen mode with non native resolution. Только это неправильно. Проблема в Windows была решена где-то с выходом Windows 95, там у функции ChangeDisplaySettings есть флаг CDS_FULLSCREEN, который говорит, что resolution временный и тогда при смене foreground приложения Windows сама возвращает последний desktop mode.

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

1) Делаем CDS_FULLSCREEN (temporary full screen mode flag) по умолчанию.
2) На уровне X.org при запуске запоминаем resolution.
3) На уровне X.org следим за foreground приложениями.
4) Если foreground приложение крашнулось, минимизировалось, ушло в фон - возвращаем 2).
5) ...
6) Profit!

Только одним местом чую, что никто тут на ЛОРе за это не возьмётся, но придумывать X :1/Xvfb/etc. костыли будут постоянно. ;)

Или кто-то возьмётся? Я не программист - в меня помидорами не бросать!

написать патч для реализации этой возможности в Linux не составит большого труда

Ну и где коммит?

Deleted
()

Только одним местом чую, что никто тут на ЛОРе за это не возьмётся

Где твои патчи, бро?

Или поставим вопрос иначе. Сколько ты готов заплатить за реализацию?

geekless ★★
()

А проблема - игрушки что ли?

Так нахер не нужны.

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

Вы не знаете разработчиков из freedesktop.

Я с ними знаком. Печальная группа людей, мягко говоря.

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

Дальше трёпа т.е. вы никуда, да? :-)

Это прекрасно!

Это показывает уровень желания помочь ОСи, которой тут бесплатно пользуются.

Ой, тут же > 80% людей на Win7 64 Ultimate (стата на mail.ru не может врать), о чём это я. :-)

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

УМВР?

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

Стоп, в Win7 64 Ultimate всё работает. Вы же не про Линукс говорили ;-)

juk4windows
() автор топика

возможно проще при каждом альт-табе чекать и ставить на нужное.. но вижу подводные камни и яомич как лучше.

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

Напишу обязательно, только Wayland не взлетит ещё года два-три :(

(Примерно столько времени уйдёт у NVIDIA/AMD, чтобы захотеть написать для него драйвереа)

juk4windows
() автор топика

man xrandr и повесь себе его на хоткей

p.s. в винде, переключение по алт-таб тоже не всегда меняет разрешение

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

главный вопрос не как а кто должен это делать? иксы? ядро? яомичкто?

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

тут же > 80% людей на Win7 64 Ultimate (стата на mail.ru не может врать)

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

pekmop1024 ★★★★★
()

например doom3 сам умеет из фулскрина выходить.

dikiy ★★☆☆☆
()

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

Я не программист

да еще и в тебе как следует не разобрался.

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

И до Иксов нажатия клавиш не доходят.

Ага.

Сейчас.

Попробуйте user space приложением перехватить Ctrl + Alt + Backspace, или смену раскладки клавиатуры.

juk4windows
() автор топика

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

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

Попробуйте user space приложением перехватить Ctrl + Alt + Backspace, или смену раскладки клавиатуры.

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

dikiy ★★☆☆☆
()

3) На уровне X.org следим за foreground приложениями.

скажите, если я ошибаюсь, но x server ничего не знает о понятиях background/foreground.

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

2) На уровне X.org при запуске запоминаем resolution. 3) На уровне X.org следим за foreground приложениями. 4) Если foreground приложение крашнулось, минимизировалось, ушло в фон - возвращаем 2).

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

3) На уровне X.org следим за foreground приложениями.

Ты совершенно не понимаешь сути иксов. Иксы никогда не следят за приложениями. Им совершенно пофиг, какое приложение что хочет сделать. WM, панели, пейджеры и обычные окна сосуществуют не потому, что в иксах распределены роли, иксы не видят между ними вообще никакой разницы. А потому, что они добровольно поддерживают ICCCM (иногда и EWMH).

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

Он знает об этом, но исключительно в понятиях перекрытия окон. А окно не слишком привязано к приложению.

x3al ★★★★★
()

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

michwill ★★★★★
()

Это костыль. Да и в Tremulous Alt+TAB работает как надо.

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

В таком случае надо Ульриха Дреппера туда пригласить.

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

С твоей стороны уровень желания - да.

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

Грубо говоря, знает. Есть такое понятие как корневое окно.

Quasar ★★★★★
()

Проблема в Windows была решена где-то с выходом Windows 95, там у функции ChangeDisplaySettings есть флаг CDS_FULLSCREEN

Точно решена? Запусти игрушку и прибей. Скорее всего разрешение обратно не переключится.

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

Это показывает уровень желания помочь ОСи, которой тут бесплатно пользуются.

Я не программист

Я вот патчи пишу, когда могу и где могу, в багзилках сижу, critical ошибки в ядре Линукса нахожу.

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

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

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

X.Org - один, а WM - много. Поэтому править надо X.Org, даже если это нифига нелогично. Или ядро. Или еще что-нибудь, от чего никто не сможет отказаться никаким образом ;)

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

Вообще, ты прав.

Надо решать глобальнее.

Разработать какую-нибудь систему анального нагибания разработчиков, чтобы они следовали стандартам :)

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

X.Org - один, а WM - много. Поэтому править надо X.Org, даже если это нифига нелогично. Или ядро. Или еще что-нибудь, от чего никто не сможет отказаться никаким образом ;)

А теперь примени это к EWMH. Ой — херня получилась.

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

Не во всех, но таки работает. В некоторых, правда, по возвращении в игру наблюдается чёрный экран, особенно если во время alt+tab'а игра была свёрнута, а не, скажем, «перелистнута» на другой рабочий стол (касается виндовых игр в Wine'е).

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

Нет, спасибо. Лучше выкинуть таких разработчиков.

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

Разработать какую-нибудь систему анального нагибания разработчиков, чтобы они следовали стандартам :)

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

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

а глупых будут грызть хомячки

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

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

Попробуйте user space приложением перехватить Ctrl + Alt + Backspace, или смену раскладки клавиатуры.

факт остается фактом - иксы передают управление на игру
А стоит-ли перехватывать? Чесслово, не линукс-программер, поэтому просто не представляю. В винде опыт есть, поэтому представляю как перехватить и использовать всуе. В линуксе не умею.

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

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

cadaber ★★
()

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

AITap ★★★★★
()

К слову, мне казалось что появился ключ для xorg.conf, который запрещает эксклюзивный захват устройств ввода, вот только я никак найти не могу где его видел, может это в каком-то дистрибутиве вроде убунты иксы пропатчили али мне приснилось?

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