[xmonad] Trouble with multiple screens and Nvidia drivers

Bárður Árantsson spam at scientician.net
Thu Dec 13 17:22:53 EST 2007


Hi all,

(This is all with xmonad-0.5)

I've been wanting to try out xmonad (as a replacement for ion3), but I'm
having some trouble with the multi-screen support, but maybe I'm just
confused about how it's supposed to work...

My setup is as follows:

   |----------------|     |--------------|
   | Screen 1       |     | Screen 0     |
   |----------------|     |--------------|

This is what the nvidia control panel says. The nvidia control panel
also says that Xinerama is enabled (and so does my xorg.conf). Xdpyinfo
says:

   default screen number:    0
   number of screens:    1

and lists a screen size of 3200x1200 (my screens are both 1600x1200).

As far as I understand Xinerama this is all as it should be. Moving
stuff across the boundary between the two screens works as it should.

Now, the behavior that seems very disconcerting to me is this:

Let's say I use the Full layout exclusively and place a client (A) on
workspace 1, thus:

    Workspace 1:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |   (empty)    |     | client A     |
    |--------------|     |--------------|

Then I switch to workspace 4, place a client (B) which also ends up on
the physical screen 0:

    Workspace 4:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |   (empty)    |     | client (B)   |
    |--------------|     |--------------|


If I now switch to workspace 1 via Alt-1 and then go up through the
workspaces via Alt-2, Alt-3 and Alt-4 I get the following sequence of
physical layouts:

   Alt-2 => Workspace 2:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |   (empty)    |     | (empty)      |
    |--------------|     |--------------|

   => As it should be.

   Alt-3 => Workspace 3:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |  Client A    |     | (empty)      |
    |--------------|     |--------------|

   => What is client A now suddenly doing on workspace 3?

   Alt-4 => Workspace 4:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |   (empty)    |     | client (B)   |
    |--------------|     |--------------|

  => As it should be.


Things get really weird when I go back down through the workspaces:

   Alt-3 => Workspace 3:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |  Client B    |     | (empty)      |
    |--------------|     |--------------|

   => What is client B now doing on the left hand side of workspace 3?

   Alt-2 => Workspace 2:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |  Client B    |     | (empty)      |
    |--------------|     |--------------|

   => What is client B now doing on the left hand side of workspace 2?

   Alt-1 => Workspace 1:

        Screen 1           Screen 0
    |--------------|     |--------------|
    |  Client B    |     | Client A     |
    |--------------|     |--------------|


I'm really baffled by this behavior. Am I missing something fundamental
about how xmonad+Xinerama is supposed to work?

(The exact order/screens which clients end up on doesn't seem to be
completely reproducible; the above is what happens most of the time though).

Any help in understanding this would be greatly appreciated.

Cheers,

-- 
Bardur Arantsson
<bardurREMOVE at THISscientician.net>

- I'm sorry I lied to you, Marge, but this gun had a hold on me.
I felt this incredible surge of power, like God must feel when
he's holding a gun.
                                    Homer Simpson, 'The Simpsons'



More information about the xmonad mailing list