LINUX.ORG.RU

два независимых монитора

 


4

3

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

упд: идеально было бы вообще по иксоргу на каждый моник запустить

★★★

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

Ну и настраивай как два независимых монитора в иксах без TwinView или Xinerama. А дальше либо двое отдельных иксов либо одни иксы и одно рабочее пространство из двух мониторов но мышка скорее всего будет перескакивать да. Хотя поведение мышки это уже более от dm/mw зависит.

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

попробую после обеда и сообщу

Насчет мышки не понял только. Если мышка переходит из одного монитора в другой при двух независимых экранах... Вообще-то, я этого не ожидал. Я ожидал, что мышка в одном мониторе будет гулять. Есть предположение, которое ты можешь проверить: закомментировать в xorg.conf вот эти строчки в секции ServerLayout:

        Screen     "screen0" 0 0
        Screen     "screen1" LeftOf "screen0"

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

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

двое отдельных иксов

это и думал сделать, только хз, как настроить

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

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

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

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

А зачем разные иксы? Одна карта всего. Сейчас уже у него все работает в принципе. Настроены два независимых экрана. На них можно запустить два разных WM. Теперь ждем подробных сообщений от автора.

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

Может они «параллельны», т.е. это один выход

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

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

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

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

в серверлэйаут всё так и написано. ну плюс ещё Identifier «default»

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

если мышек несколько

она одна, но вся суть в том, что я хочу, чтобы клава-мышь в них переключалась комбинацией, а не висели как в общем рабочем пространстве

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

А зачем разные иксы?

Ну дык чтоб не вылазила же!

Одна карта всего.

А какая разница сколько карт если разговор о том сколько у карты выходов? И если выходов всяко больше одного то и мониторов прицепить можно тоже больше одного а следовательно и иксов можно поднять тоже больше чем одни :) И мышка будет висеть на одном иксе и в другой не перескакивать.

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

она одна, но вся суть в том, что я хочу, чтобы клава-мышь в них переключалась комбинацией, а не висели как в общем рабочем пространстве

Скорее всего и это тоже реально.

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

в серверлэйаут всё так и написано. ну плюс ещё Identifier «default»

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

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

извиняй, я параллельно ещё работаю

sek.tor@wk-325 ~ [0] $ ls /sys/class/drm
card0  card0-HDMI-A-1  card0-VGA-1  controlD64  version

вот нынешний конфиг, с которым второй моник вроде даже работает

Section "Device"
        Identifier "display0"
        Driver     "intel"
#       BusID      "PCI:0:2:0"
        Option     "ZaphodHeads" "HDMI1"
        Option      "AccelMethod"  "sna"
        Screen     0
EndSection

Section "Device"
        Identifier "display1"
        Driver     "intel"
        BusID      "PCI:0:2:0"
        Option     "ZaphodHeads" "VGA1"
        Option      "AccelMethod"  "sna"
        Screen     1
EndSection

Section "Screen"
        Identifier "screen0"
        Device     "display0"
EndSection

Section "Screen"
        Identifier "screen1"
        Device     "display1"
EndSection

Section "ServerLayout"
        Identifier "default"
        Screen     "screen0" 0 0
        Screen     "screen1" LeftOf "screen0"
EndSection
xsektorx ★★★
() автор топика
Ответ на: комментарий от xsektorx

Так это уже понятно, что работает! У тебя мышка свободно ходит между мониторами. Ты этого не очень хотел. Я предположил это два независимых монитора (комментарий) и попросил закомментировать. И проверить, будет ли в одном ходить.

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

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

У тебя на основном мониторе awesome, а на втором, я так понял, не запустился xmonad. То есть у тебя нет вообще там WM никакого,а только приложения. Надо там запустить оконный менеджер (хоть какой-то) и проверить, заработает ли клава. Если нет, то будем разбираться. Они у тебя, скорее всего, фокус ввода не получают, он остается у каких-то приложений на основном экране.

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

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

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

мышка-то всяко будет вылезать

При separate screen (:0.0, :0.1) не будет.

потом её ещё возвращать хз как

Написал же: xdotool

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

При separate screen (:0.0, :0.1) не будет.

Ну вот ты всю дискуссию прочти. Так и сконфигурировано :0.0 и :0.1. Вылезает.

Написал же: xdotool

И это тоже советовали уже. Аж два раза. Но это второстепенная проблема. :)

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

вот, что пишет хмонад:

/home/sek.tor/.xmonad/xmonad-x86_64-linux: executeFile: does not exist (No such file or directory)
Xlib:  extension "XINERAMA" missing on display ":0.1".

щас буду ещё проверять

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

Ну вот ты всю дискуссию прочти. Так и сконфигурировано :0.0 и :0.1. Вылезает.

Цепочку прочти. Вместо LeftOf, нужно разнести мониторы по абсолютным координатам.

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

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

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

чёрт, похоже, проблема в первой строке, ибо просто хмонад тоже не запускается с этим же косяком

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

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

1. Внимательно посмотри, выставлено ли нормальное разрешение у обоих мониторов (то есть родное. Или лог покажи).

2. Добавь опцию в секцию ServerLayout

Section "ServerLayout"
        Identifier "default"
#        Screen     "screen0" 0 0
#        Screen     "screen1" LeftOf "screen0"
        Option "Xinerama" "off"
        Option "Clone" "off"
EndSection

Что получается?

UPD! Да, а мышка? Мышка-то не вылазит теперь?

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

чёрт, похоже, проблема в первой строке, ибо просто хмонад тоже не запускается с этим же косяком

У тебя xmonad собранный самостоятельно, что ли? А если без DISPLAY запустить вообще? Запускается?

UPD. Мне кажется, что проблема в xmonad. Пожалуйста, поставь какой-нибудь оконный менеджер еще для проверки. Самый простой. Потом снесешь. Скажем, openbox, icewm, fluxbox и т . д. и запусти на втором мониторе. У меня есть предположение, что проблема в xmonad.

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

Цепочку прочти. Вместо LeftOf, нужно разнести мониторы по абсолютным координатам.

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

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

Может и не понадобиться.

Да это глюк иксов. Мышка не должна переходить на другой screen, но если они касаются или расстояние несколько пикселей, то переходит.

А еще есть глюк, если два монитора (screen-а) имеют разное разрешение (например: 1600x1200 и 1920x1080) и координаты не заданы (т.е. у обоих 0x0), то мышка с первого монитора будет убегать влево (1920>1600), а возвращатся на него только снизу (1200>1080) :)

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

Да это глюк иксов. Мышка не должна переходить на другой screen, но если они касаются или расстояние несколько пикселей, то переходит.

А мне почему-то кажется, что это вполне логичное поведение. Вот смотри. Если у тебя два независимых экрана, то возможность указания их соседства (LeftOf, RightOf...) вообще смысла не имеет. Какая разница, как они расположены, если они разные вещи показывают никак не связанные. А вот если указывается явно расположение, то это знак серверу, что мышку туда выпустить можно. То есть эта опция (LeftOf) как бы открывает границу между экранами. Да, но показывают они все равно каждый свое.

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

Нет, потому что за экраны всё равно отвечают иксы, а не WM.

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

// А с иксами такое всё равно не сварганить — если дать каждому физическому монитору по экрану, то WM будет работать только в одном. На втором экране можно будет открывать окна через переопределённый DISPLAY типа :0.1, но вот управлять ими вряд ли получится — я так mpv запускал, выхлоп с клавиатуры он больше не ловит и в терминале не отзывается. Это пригодно только чтоб рекламу крутить или в терминалы оплаты ставить. Один i3, один экран, man xrandr.

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

да это неважно, мышью возюкаю я в браузере

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

выставлено ли нормальное разрешение у обоих мониторов (то есть родное. Или лог покажи)

нормальное, ткнулся с xrandr -q

Что получается?

то же самое, неполный клон

Мышка-то не вылазит теперь?

вылазит

запустил, кстати, i3 с DISPLAY=:0.1. всё запустилось, но теперь клава передалась в другой моник и возвращаться не хотела даже после того, как я руками прибил i3

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

то же самое, неполный клон

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

запустил, кстати, i3 с DISPLAY=:0.1. всё запустилось, но теперь клава передалась в другой моник и возвращаться не хотела даже после того, как я руками прибил i3

В какой конфигурации это запускалось? Очень плохо описываешь. Когда уже клонированные мониторы или со старым конфигом? А что на первом мониторе? А как мышка путешествует? А что ты сделал, чтобы передать фокус ввода? А что ты делал, чтобы вернуть фокус ввода на первый экран?

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

Покажи-ка лог на всякий случай

http://paste.debian.net/132642/ - вот лог, если я правильно понял (запустил в соседнем терминале, одновременно с первыми иксами). на всякий вот ещё: http://paste.debian.net/132643/ (который Xorg.0.log.old)

Как мышка путешествует в этом случае?

по большому экрану - как обычно, не вылезает за пределы. в маленьком она просто исчезает снизу и справа, когда слишком далеко. в случае когда не клон, а LeftOf - всё как обычно, вылезает слева первого, попадает на правый край второго

В какой конфигурации это запускалось?

в конфигурации LeftOf. на первом монике тот же осом. Мышка путешествает как описано выше в случае LeftOf

А что ты сделал, чтобы передать фокус ввода?

ничего, он сам переместился

А что ты делал, чтобы вернуть фокус ввода на первый экра

попробовал кильнуть i3

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

http://paste.debian.net/132642/ - вот лог, если я правильно понял (запустил в соседнем терминале, одновременно с первыми иксами). на всякий вот ещё: http://paste.debian.net/132643/ (который Xorg.0.log.old)

Я хотел посмотреть логи с закомментированным LeftOf и добавленными «Clone» «Off» и (на всякий случай) «Xinerama» «Off». Если я правильно понимаю, это логи со старым конфигом?

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

попробовал кильнуть i3

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

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

по большому экрану - как обычно, не вылезает за пределы. в маленьком она просто исчезает снизу и справа, когда слишком далеко. в случае когда не клон, а LeftOf - всё как обычно, вылезает слева первого, попадает на правый край второго

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

С LeftOf понятно. Я так примерно и предполагал, что оно будет работать. Значит, без LeftOf мышка за экран не убегает и наша проблема - клонирование.

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

упд: идеально было бы вообще по иксоргу на каждый моник запустить

Ну, так и в чем проблема, переключатся будешь по ctrl+alt+f7/f8

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

Если ты не допустил синтаксических ошибок в конфигурации, то как вариант можешь попробовать то, что предложил arson - разнести области подальше. У тебя screen0 1920 по ширине. Отодвинем на 2000.

Section "ServerLayout"
        Identifier "default"
#        Screen     "screen0" 0 0
#        Screen     "screen1" LeftOf "screen0"
        Screen      "screen0" 0 0
        Screen      "screen1" 2000 0
        Option      "Xinerama" "off"
        Option      "Clone" "off"
EndSection

Или вот так еще попробуй:

Section "ServerLayout"
        Identifier "default"
#        Screen     "screen0" 0 0
#        Screen     "screen1" LeftOf "screen0"
        Screen      "screen0" 0 0
        Screen      "screen1" 0 0
        Option      "Xinerama" "off"
        Option      "Clone" "off"
EndSection
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

одно из них - с новым конфигом, но я не уверен, какое именно

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

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

да, всё так

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

клики мышки в окно игнорирует

Опять нужно поясниение. Я не понял, к чему фраза относится. Это такое поведение awesome в принципе, что он не передает фокус ввода окну, в которое ткнули мышкой или он не передает фокус при тыкании мышкой, если фокус сейчас у приложения i3 на другом экране? А то я видел в интернете , что всякое разное поведение настраиватся в awesome: фокус окну под мышкой, sloppy focus.

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

А что там с размежеванием мониторов. Получилось мышку зажать в одном экране? Если да, то, может, после xdotool нормально фокус отдавать будет? Надо проверить.

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

в том, что надо привязать мониторы к разным терминалам. как - хз

В xorg.conf будут 2 секции ServerLayout (с названиями например zero и one), в одном 1-й монитор прописан, в другом 2-й.

Запускаешь Xorg:

xorg :0 -layout zero

xorg :1 -layout one

Каждый xorg будет запущен на новом свободном tty, чаще всего это будут 7-й и 8-й

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

Ему нужно запустить на разных монторах, но у него видеочип один, два разных выхода. То есть ему надо как-то одному серверу прописать только один выход той же карты, а другому — другой выход. У меня совершенно нет уверенности в том, что это в принципе заработает. И, скорее всего, direct rendering и 2D acceleration не будут работать. Я предполагаю, так как никогда не пробовал и не встречал подобных конфигураций. С двумя картами понятно еще: каждому отдельному серверу своя.

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

Еще, кстати, вариант - запустить на втором экране Xephyr, дать ему дисплей :1 а в нем пустить нужный оконный менеджер. Только не помню, будет ли работать там 2D/3D ускорение и Xv. Не следил давно.

UPD: То есть как-то так:

DISPLAY=:0.1 Xephyr :1 -screen 1600x900

А потом там (в Xephyr на дисплее :1) запустить

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

Ему нужно запустить на разных монторах, но у него видеочип один, два разных выхода.

Хм, да, в таком случае будет работать только 1 монитор, второй будет гаснуть)

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