02.01.2011 23:34

ShtshКак я настраивал Xorg + awesome для работы с двумя мониторами

Купил я, значит, монитор Benq 24" G2420HD, воткнул его вместе со своим старым LG Flatron L192WS и стал думать, как бы их нормально настроить.

Настройка Xorg

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

Секция Device — указываем, что к одному устройству подключено два экрана

 1
2
3
4
5
6
7
8
9
10
11
12
13
Section "Device"                                                                                                                       
Identifier "Device0"
Driver "nvidia"
Option "NoLogo" "True"
Screen 1
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
Option "NoLogo" "True"
Screen 0
EndSection



Теперь описываем мониторы
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Section "Monitor"                                                                                                                      
Identifier "Monitor1"
VendorName "Unknown"
ModelName "LG Electronics L192WS"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "BenQ G2420HD"
HorizSync 24.0 - 83.0
VertRefresh 50.0 - 76.0
Option "DPMS"
EndSection



Теперь настройка экранов
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Section "Screen"
Identifier "Screen0"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "CRT: 1440x900 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection



И напоследок настроим Layout и укажем, что маленький монитор слева от большого.
1
2
3
4
5
6
Section "ServerLayout"                                                                                                             
Identifier "DualSreen"
Screen 0 "Screen0"
Screen 1 "Screen1" LeftOf "Screen0"
Option "Xinerama" "0"
EndSection



Если у вас версия xorg-server < 1.8, то настройки лежат в /etc/X11/xorg.conf, иначе лежат в отельных файлах в /etc/X11/xorg.conf.d/

Настраиваем awesome

Тут тоже ничего экстраординарного нету, ибо awesome умеет два монитора "искаропки". Стоит только помнить, что есть смысл следить за тем, с какого экрана запускаете программу. Например, если у меня у firefox тэг со свойством screen = 1, а запускаю я с другого экрана, то он запустится, но окна видно не будет. Поэтому нужно принудительно запускать как
1
DISPLAY=:0.0 firefox



Вот, как я разделил теги в shifty
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- shifty: predefined tags
shifty.config.tags = {

-- screen 1

<"term"> = { init = true, position = 1, screen = 1, layout = awful.layout.suit.fair },
<"web"> = { position = 2, screen = 1, layout = awful.layout.suit.fullscreen, mwfact = 0.6, spawn = browser },
<"multimedia"> = { position = 8, screen = 1, layout = awful.layout.suit.fullscreen },
<"office"> = { position = 9, screen = 1, layout = awful.layout.suit.tile.bottom },
<"gimp"> = { position = 0, screen = 1, layout = awful.layout.suit.max, spawn = "gimp" },

--screen 2

<"im"> = { position = 3, screen = 2, layout = awful.layout.suit.tile.left, mwfact = 0.3 },
<"skype"> = { position = 4, screen = 2, layout = awful.layout.suit.tile.left, },
<"mail"> = { position = 5, screen = 2, layout = awful.layout.suit.tile.bottom },
<"picture"> = { position = 6, screen = 2, layout = awful.layout.suit.max },
<"music"> = { position = 7, screen = 2, layout = awful.layout.suit.tile.bottom },
}


Конечно, если бы я работал чаще с гимпом, то (наверное) настроил его для работы с двумя мониторами, но сейчас это не особо важно.

Ну, и напоследок изменил автоматический запуск программ
1
2
3
4
os.execute("pgrep -u $USER -x pidgin || (DISPLAY=:0.1 pidgin &)")
os.execute("pgrep -u $USER -x thunderbird|| (DISPLAY=:0.1 thunderbird &)")
os.execute("pgrep -u $USER -x deadbeef || (DISPLAY=:0.1 deadbeef &)")
os.execute("pgrep -u $USER -x skype || (DISPLAY=:0.1 skype &)")



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


Тэги: awesome dual monitor Linux xorg
+ 10 -
Похожие Поделиться

Anrock 02.01.2011 23:45 #
Спасибо, ня. Как раз недавно озадачивался вопросом подключения нетбука к всяким-разным другим экранам.
dr_lo 03.01.2011 12:07 #
настраивал почти тоже самое, только под радеон и двм. в ксорг.конф залазить не пришлось =)
cat ~/.bin/secmon.sh

xrandr --addmode DFP1 1280x1024
xrandr --output DFP1 --mode 1280x1024
xrandr --output DFP1 --left-of LVDS
xrandr --output DFP1 --gamma .85:.85:.85
razum2um 03.01.2011 21:10 #
Вам и ТС: а расскажите популярно, что такое DFP
Shtsh 03.01.2011 21:28 #
Shtsh 03.01.2011 21:29 #
но, думаю, у dr_lo подключено всё же по DVI
dr_lo 03.01.2011 12:09 #
кстати, а возможность перемешать мыше-курсор между мониторами у вас есть?
Shtsh 03.01.2011 12:13 #
Да, есть. За границей одного монитора сразу начинается другой.
dr_lo 03.01.2011 14:45 #
вот у меня таже байда. как бы избавиться от этого?(риторический вопрос)
Denchik 22.08.2012 18:15 #
xrandr --output HDMI-0 --mode 1680x1050 --primary --output VGA-0 --mode 1280x1024 --rate 1280 --rotate left --right-of HDMI-0
kstep 23.08.2012 16:03 #
А зачем насильно ставить DISPLAY? У меня вот при двух мониторах awesome сам раскидывает окна по ним. То есть он раскидывает по тегам, а теги привязаны к мониторам, так что получается, что окна сами по мониторам расходятся, DISPLAY нигде явно не выставляю.
Shtsh 23.08.2012 17:28 #
Уже не помню :)

А в каком режиме у тебя мониторы работают?
kstep 23.08.2012 17:39 #
А хз, оно как-то само заработало, я даже не настраивал специально. Карта сдвоенная Optimus: NVidia и Intel.

xrandr говорит такое:

Screen 0: minimum 320 x 200, current 3520 x 1080, maximum 8192 x 8192
LVDS1 connected 1600x900+1920+0 (normal left inverted right x axis y axis) 345mm x 194mm
1600x900 60.0*+ 50.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
1920x1080 60.0*+
1680x1050 60.0
1280x1024 75.0 60.0
1440x900 75.0 59.9
1024x768 75.1 60.0
800x600 75.0 60.3
640x480 72.8 75.0 66.7 60.0
720x400 70.1