Highlighter

воскресенье, 15 января 2012 г.

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

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

Настройка Xorg

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

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

 
Section "Device"                                                                                                                       
       Identifier     "Device0" 
        Driver "nvidia"
        Option "NoLogo" "True"
        Screen  1
EndSection

Section "Device"
       Identifier     "Device1" 
        Driver "nvidia"
        Option "NoLogo" "True"
        Screen          0   
EndSection
Теперь описываем мониторы
 
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
Теперь настройка экранов

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 и укажем, что маленький монитор слева от большого.

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, а запускаю я с другого экрана, то он запустится, но окна видно не будет. Поэтому нужно принудительно запускать как

DISPLAY=:0.0 firefox
Вот, как я разделил теги в shifty

-- 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                                },  
}
Конечно, если бы я работал чаще с гимпом, то (наверное) настроил его для работы с двумя мониторами, но сейчас это не особо важно.

Ну, и напоследок изменил автоматический запуск программ

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 &)")
Как можно увидеть, ничего особо сложного делать не пришлось. Но, может, кому-нибудь эта информация будет полезной.

Опубликовано на Welinux.ru

Комментариев нет:

Отправить комментарий