LINUX.ORG.RU

Некоторые приложения «приклеиваются» к одному экрану (multimonitor)

 , ,


0

1

Я подобное еще давно заметил на работе: openoffice4 или либреофис намертво "приклеиваются" к одному монитору и их невозможно перетащить на другой. Но я не обращал на это особого внимания, т.к. этими текстовыми редакторами пользуюсь не так уж и часто (предпочитаю kile и geany).

Но вот вчера дома (тоже 2 экрана: монитор и телевизор) запустил kicad, и окно eeschema вылезло на телевизор! Вернуть его помогло только отключение телевизора через xrandr. Окно не то, что не хотело с телевизора возвращаться, но и вообще не двигалось!

WM — IceWM. На работе старый арчик, дома — гента.

Возможно ли как-то пресечь подобное дурацкое поведение окон? А еще бывает проблема, что окно "запоминает" монитор, на котором до этого выводилось, и если его через xrandr отключить, то окно открывается где-то в небытие! Лечится ли это?

☆☆☆☆☆

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

Вообще не понимаю зачем использовать телевизор как продолжение рабочего стола. Это только глаза и шею ломать. Separate screen, на телевизор только видео.

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

Вообще не понимаю зачем использовать телевизор как продолжение рабочего стола

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

Separate screen, на телевизор только видео

Так и есть, только продолжение, а не separate. Я не хочу 2 копии иксов запускать.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от PolarFox

С разморозкой! Линукс давно умеет дофига мониторов! И при чем здесь WM? Это — фича иксов!!!

А мастдайка, между прочим, не умеет. Гыгыгы!

Eddy_Em ☆☆☆☆☆
() автор топика

А еще бывает проблема, что окно «запоминает» монитор, на котором до этого выводилось, и если его через xrandr отключить, то окно открывается где-то в небытие!

А вот это вряд ли. Окна и иксы ничего запоминать не могут. Может запомнить само приложение или оконный менеджер. IceWM точно никогда ничего не запоминает, но может срабатывать правило. Проверь на всякий случай, писал ли ты какие-нибудь правила в ~/.icewm/winoptions

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

И при чем здесь WM?

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

А мастдайка, между прочим, не умеет.

Умеет.

Gotf ★★★
()

А у тебя как сконфигурированы иксы? Что говорит xrandr: у тебя два отдельных скрина или один большой виртуальный скрин? Если два, то у тебя :0.1 и :0.0, а если один, то только :0. Если последнее, то IceWM считает, что root window на оба экрана, поэтому располагать может во всей области. Может быть ошибка в IceWM. После изменения xrandr геометрии, IceWM это дело никак не обрабатывает и работает будто с большим экраном. Вот это неплохо бы проверить.

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

Умеет

4.2

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

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Gotf

А мастдайка, между прочим, не умеет.

Умеет.

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

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

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

IceWM поддерживает RandR и, по-моему, Xinerama. Для приложения скрин :0 становится больше, ему не нужно знать, что это разные мониторы. Если геометрия меняется, то IceWM получает об этом уведомление и перерисовывается на предоставленный скрин. Может быть баг в том, что он это не делает должным образом: панели перерисовывает, а положене окон и позиционирование вновь открываемых может забывать поправить.

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

Во, у меня точно так же в IceWM: окна лезут, где хотят; "пропадают" и т.п. Скажем, в гимпе обычно само окно гимпа вылезает на основном мониторе, а менюшки — на вспомогательном. Обычно это удобно, если только вспомогательный не выключен...

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

Она не может сделать 2 монитора дополняющими друг друга.

Может, я делал.

А уж тем паче — запустить 2 копии иксов, чтобы получился dualhead.

Может, с некоторыми нехитрыми костылями.

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

Я не хочу 2 копии иксов запускать.

Separate screen это одна копия X-ов, просто правильно сконфигурированная.

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

Думаю, это «само приложение». Потому что я в winoptions ничего не писал.

Вот в этом пока я сомневаюсь, что само приложение. Это надо как-то доказать. Мне кажется, что чудит оконный менеджер. Легко проверить. Сначала изменить геометрию xrandr. Открыть приложение. Если улетело, то перезапустить оконный менджер (Ctrl+Alt+Del, далее «перезапуск IceWM»), а потом снова открыть приложение.

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

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

В мастдае же запустишь приложение и сидишь озираешься на каком из мониторов оно всплывёт.

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

Трей в винде только на одном экране - который, типа, «главный».

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

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

Вечерком включу компьютер и проверю. Пока за буком сижу. У меня до сих пор какие-то косяки с огнелисом: при открывании больше 3-4 вкладок он зависает намертво, я даже на super+x повесил команду killall -9 firefox && sleep 10 && firefox. Пересборка мира (на работе) не помогла. Чертовщина какая-то!

А вот хромой, собака, так не чудит. Он сдыхает по стандартной причине — его oom-killer убивает, если вкладок 10 открыть (т.к. эта скотина всю оперативу отжирает).

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

Во, у меня точно так же в IceWM: окна лезут, где хотят; «пропадают» и т.п. Скажем, в гимпе обычно само окно гимпа вылезает на основном мониторе, а менюшки — на вспомогательном. Обычно это удобно, если только вспомогательный не выключен...

Хм.. ГИМП и в КЕДах также себя ведёт. Ща вот попробовал выключить один из моников - с точки зрения кед ничего не изменилось и окна в оставшийся не переместились (хотя бы это на лэптопе под вендой работает, правда пинку функциональной кнопочкой и с жутким paging'ом)

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

А вот GIMP, по-моему, может запоминать, где рисовался (координаты). Насколько я помню, там есть такая фишка.

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

Она умеет многое. Но при этом считает себя умнее пользователя.

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

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

Может я не так выразился - имел в виду панель задач, ну «там, где иконки запущенных приложений». У меня в кедах оно на обоих мониторах, галочкой выбрано показывать только те приложения, которые на этом экране. Очень удобно. Хотя тот трей, «там где часики», тоже под каждым экраном свой (разные)..

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

Ну, это я загнул, конечно. Обычно 3-4 минуты, если корректно работу завершил. Если некорректно — то fsck пока 7ТБ проверит...

Сейчас запустил kicad для проверки: его могу тягать с монитора на монитор, а вот запущенное им окно eeschema — нет! Перезапуск icewm не спасает. В свойствах xprop ничего подозрительного нет.

Чертовщина какая-то!

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

А ты icewm перезапускаешь при открытых окнах или закрываешь приложения? Ты не закрывай как раз приложения и перегружай. Так делал? А что говорит xprop? А что значит, что не двигается? То есть просто не реагирует на перетаскивание и упрямо стоит на месте? Может, там с координатами какая-то ерунда.

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

При открытых перезапускал.

То есть просто не реагирует на перетаскивание и упрямо стоит на месте?

Ага.

Может, там с координатами какая-то ерунда.

ХЗ: и у eeschema, и у основного окна kicad были почти одинаковые свойства в xprop.

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

А попробуй поуправлять им через wmctrl. Примерно как-то так:

wmctrl -e 1,40,30,700,700 -r <твое окно>

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

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

> А у тебя как сконфигурированы иксы?

1 большой экран.

эту функцию X.Org — разве не уничтожили недавно?

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

WM при том, что он может мешать окнам перемещаться с одного экрана на другой.

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

А я не сомневаюсь. Это маленькая утилитка. Потом снесешь. Вообще, такие слова странно слышать от тебя. :)

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

Не могу: на втором уже кино запустили.

Мы подождем. :)

В общем, мне хочется узнать, будет ли управляться окно через wmctrl. У тебя большой экран, у этого экрана большое виртуальное разрешение, скажем, 2560x1024 (это для примера два экрана 1280x1024 горизонтально). Попробовать залипшее окошечко в координатах первого и второго монитора подвигать при помощи wmctrl. Вот интересно, будет ли двигаться.

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

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 8192 x 8192

Почитал man wmctrl: надо еще ключ -i указывать, т.к. без него -r не воспринимает идентификатор окна (а что ему нужно, я не понял).

Попробовал с окном терминала вот так:

wmctrl -e 1,2000,10,1000,500 -ir 0x012187ce
сработало.

Попробовал с eeschema:

wmctrl -e 0,1920,0,1920,1080 -ir 0x024000e2

0 реакции

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

А если eeschema без второго монитора, то двигается?

И вопрос: а терминал на втором мониторе не прилипает, если его там открыть? (подставить координаты на втором мониторе)

xterm -geometry +10+10
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

А если eeschema без второго монитора, то двигается?

Да, вчера я ж так ее и вытащил: закрыл, потом отключил телевизор (xrandr'ом), потом запустил — нормально оно двигалось.

Терминал не прилипает. И вообще, все открывается по умолчанию на основном экране (мониторе).

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

Терминал не прилипает. И вообще, все открывается по умолчанию на основном экране (мониторе).

А терминал ты открыл на втором или просто перетащил туда? Не совсем ясно из твоего ответа.

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

на основном, с него и перемещал

Не, ну не годится так. Не чистый экспримент. Открой терминал на основном мониторе и запускай еще один терминал с параметром Geometry как выше, но вместо +10+10 (это +X+Y) подставь координаты внутри второго мониора (вспомогательного).

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
16 сентября 2014 г.

Тема актуальна. Хочется переместить, скажем, опенофис — а фигвам!

С хромым решилось: у него есть в настройках есть "отображение менюшки" в стиле мастдайки, так если минимизировать окно из этой менюшки (даже если оно не было растянуто), то можно мышкой или wmctrl переместить; если же оно максимизировано, переместить никак не получится.

А вот у опенофиса такой "волшебной" кнопки нет, увы.

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