You are not logged in.

#1 2009-10-05 21:21:17

_will
Member
Registered: 2004-07-08
Posts: 123

[AwesomeWM] Applications locked to one screen in a dual monitor setup

Perhaps the title should be "Multiple Screens with multiple video cards." I imagine  my confusion here is the reason I am unable to move clients from one screen to the other in awesome. Though the cursor moves fluidly between Screen1 and 2,  MOD4+drag traps the cursor and the client on the current screen. MOD4+o brings the cursor to the upper left corner of the current screen. Openbox and fluxbox are similarly limited.

With my Xorg.conf I have $DISPLAY as :0.0 or :0.1 depending on which screen the terminal is open.

The closest I've come to a solution is xpra from the parti-all aur package. But, I haven't found a way to make it useful. I'm hoping there is an alternative configuration. Maybe something like xinerama or Zaphod?

I'd like to use xrandr but it seems thats a no go for multiple boards as of the the previous version. I cannot find documentation for 1.3.

http://wiki.debian.org/XStrikeForce/HowToRandR12 wrote:

VI.5. Multi-board support broken - RandR 1.2 does not support multiple boards yet (it's planned for RandR 1.3). It means that any RandR 1.2 aware driver will crash the server if you have 2 boards. Even one board with a RandR 1.2 driver and another board with a classic driver does not work. It just crashes the X server.

Any ideas?

> grep -v "^\s*#" /etc/X11/xorg.conf|grep -v ^$ |xclip wrote:

Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/misc"
    FontPath     "/usr/share/fonts/100dpi:unscaled"
    FontPath     "/usr/share/fonts/75dpi:unscaled"
    FontPath     "/usr/share/fonts/TTF"
    FontPath     "/usr/share/fonts/Type1"
EndSection
Section "Module"
    Load  "glx"
    Load  "dri2"
    Load  "extmod"
    Load  "dbe"
    Load  "dri"
    Load  "record"
EndSection
Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection
Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/input/mice"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection
Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection
Section "Device"
    Identifier  "Card0"
    Driver      "nv"
    VendorName  "nVidia Corporation"
    BoardName   "NV25 [GeForce4 Ti 4200]"
    BusID       "PCI:3:0:0"
EndSection
Section "Device"
    Identifier  "Card1"
    Driver      "radeon"
    VendorName  "ATI Technologies Inc"
    BoardName   "Radeon RV100 QY [Radeon 7000/VE]"
    BusID       "PCI:1:7:0"
EndSection
Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection
Section "Screen"
    Identifier "Screen1"
    Device     "Card1"
    Monitor    "Monitor1"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Offline

#2 2009-10-07 22:05:18

_will
Member
Registered: 2004-07-08
Posts: 123

Re: [AwesomeWM] Applications locked to one screen in a dual monitor setup

Err. My confusion is indeed the culprit. For anyone who might find themselves in a similar situation the nomenclature is as follows.
"Zaphod mode" on wikipedia is listed as a multi-seat configuration, however, I think it more often describes the set up in my posted xorg.conf. That is, the server has two independent screens associated with their respective device. Titling window managers seem to present multiple screens a la Zaphod. At least in awesome, each screen has its own set of tags.  Xinerama is a soon to be deprecated extension merging multiple physical displays into a singular virtual one. It will be replaced with RandR. But, as of the current version of RandR, multi-board setups are not supported.
ATI and nVidia have proprietary implementations for multi-head configurations (Big Desktop and Twinview respectively). I assumed both cards would have to be same brand and either ATI or nv. So, I didn't look into this.

By the nature of Zaphod mode, applications exist only on one screen. They cannot easily be moved. Because the Xinerama extension implements one large virtual display, X clients can be displayed anywhere. This is apparently at the cost of direct rendering on both screens. Xinerama is also limited in that all screens have to have the same depth.

Having the Zaphod mode xorg config, enabling Xinerama just requires one line in the ServerLayout section:

Section "ServerLayout"
        # .....
        Option "Xinerama" "on"

However, if the resolution differs on the screens, screens with lower resolutions will have "dead space" where the rectangle of the virtual resolution is not displayed by the physical resolution of a screen.  Moving the cursor into this area will pan the screen to show the previously hidden area and hiding what was previously visible. This means an application fullscreened on the screen with the lower resolution will never be completely visible.
To enforce physical resolutions in the virtual screen also only requires one line. In the display subsection of the lower resolution screen section, setting the virtual display to the same as the mode will remove the dead area.

Section "Screen"
        Identifier "Screen1"
        #...
        SubSection "Display"
                #...
                Modes "1280x1024"
                Virtual 1280 1024
        EndSubSection

Please reply if I've gotten anything wrong!

Last edited by _will (2009-10-07 22:08:19)

Offline

Board footer

Powered by FluxBB