How to manage three monitors on two graphics cards?

I have a machine with two graphics cards, and three differently-sized monitors (at different orientations) driven by the two cards. As far as I could easily find, my main options appear to be: (1) In xorg.conf ServerFlags: Option "Xinerama" "false" Then I have two screens, :0.0 and :0.1; I follow the gentoo Multihead instructions at http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors and start X without session manager, just with startx, and have xmonad on the last line of .xinitrc. (This is xmonad-0.10.) That xmonad then appears to manage only the first screen, :0.0, which happens to have two outputs associated with it. (While I had the second card deactivated, xmonad managed these two outputs separately as it should.) However now, even though xrandr still sees these two outputs associated with the current screen, xmonad manages them as a single unit --- does that qualify as a bug? I can start another xmonad DISPLAY=:0.1 xmonad & taking over the other screen, but that is not sufficient to actually use it; I found no combination of mouse clicking and keyboard action that would get focus into that empty screen and start a terminal. I therefore have to DISPLAY=:0.1 terminal & whenever I end up in an empty workspace on the second screen, otherwise I can do nothing there. Even if both screens are populated, switching focus between them seems to require mouse movement, and still seems to be a brittle affair; most of the time I have to mod4-<left> click (myModMask = mod4Mask) (followed my mod4-t to move the activated window back into tabbing). I can work with this, but it is far from the degree of enjoyment that xmonad gave me with two monitors... (2) In xorg.conf ServerFlags: Option "Xinerama" "true" Now xrandr does not work anymore, and xmonad sees one big area. I can specify the X locations of the three outputs to import XMonad.Layout.LayoutScreens but I have the impression that this works on the wrong level, and did not see how that would allow me to switch my normal 9 workspaces across the now three monitors in the same way as I previously did with two monitors. (I have been a pure xmonad user so far (a very happy one!) and not delved into its API yet.) What is the best way to make xmonad ``just work'' with multiple screens split across multiple graphics cards? Just fixing my main problem with (1), namely getting the first xmonad to handle the two outputs separately again, would be a big improvement... Wolfram

On Thu, Jan 5, 2012 at 10:53 AM, Wolfram Kahl
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
It sounds like your xmonad install may not have support for xinerama. That's relatively easy to fix, and there is a simple test. See this entry in the FAQ: http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#xmonad_... --Rogan

Wolfram Kahl [2012.01.05 1353 -0500]:
I have a machine with two graphics cards, and three differently-sized monitors (at different orientations) driven by the two cards.
As far as I could easily find, my main options appear to be:
(1) In xorg.conf ServerFlags: Option "Xinerama" "false"
Then I have two screens, :0.0 and :0.1; I follow the gentoo Multihead instructions at
http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors
and start X without session manager, just with startx, and have xmonad on the last line of .xinitrc. (This is xmonad-0.10.)
That xmonad then appears to manage only the first screen, :0.0, which happens to have two outputs associated with it. (While I had the second card deactivated, xmonad managed these two outputs separately as it should.) However now, even though xrandr still sees these two outputs associated with the current screen, xmonad manages them as a single unit --- does that qualify as a bug?
I'm not sure about this, but I would suspect that this is an x server/graphics driver issue. xmonad can only work with what the x server/graphics driver reports as the available screens. I had a similar situation where, using three screens and the NVIDIA proprietary driver. I was running xinerama on top of twinview and suddenly had the twinview screens used as a single screen. In any case, running with "xinerama" "false" doesn't seem to be the way to go because you can't move windows between independent displays, etc.
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
Indeed, xrandr and xinerama are incompatible. Do you need xrandr? From your post, I suspect that the only reason you want it is that your xinerama setup still reports everything as one big screen, which is really strange. Can you maybe post your entire xorg.conf file (or better put it into a paste service and post the link here). Cheers, Norbert

On Thu, Jan 05, 2012 at 03:53:47PM -0400, Norbert Zeh wrote:
Wolfram Kahl [2012.01.05 1353 -0500]:
I have a machine with two graphics cards, and three differently-sized monitors (at different orientations) driven by the two cards.
As far as I could easily find, my main options appear to be:
(1) In xorg.conf ServerFlags: Option "Xinerama" "false"
Then I have two screens, :0.0 and :0.1; I follow the gentoo Multihead instructions at
http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors
and start X without session manager, just with startx, and have xmonad on the last line of .xinitrc. (This is xmonad-0.10.)
That xmonad then appears to manage only the first screen, :0.0, which happens to have two outputs associated with it. (While I had the second card deactivated, xmonad managed these two outputs separately as it should.) However now, even though xrandr still sees these two outputs associated with the current screen, xmonad manages them as a single unit --- does that qualify as a bug?
I'm not sure about this, but I would suspect that this is an x server/graphics driver issue. xmonad can only work with what the x server/graphics driver reports as the available screens. I had a similar situation where, using three screens and the NVIDIA proprietary driver. I was running xinerama on top of twinview and suddenly had the twinview screens used as a single screen.
I am running to equal ATI cards with the radeon driver. The code configuration is taken care of by the gentoo USE flag xinerama --- I just checked the tests suggested on the FAQ page.
In any case, running with "xinerama" "false" doesn't seem to be the way to go because you can't move windows between independent displays, etc.
Indeed, but currently it is still more usable than anything I could achieve with Xinerama on.
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
Indeed, xrandr and xinerama are incompatible. Do you need xrandr?
I just knew no other tool that produces that kind of information...
Can you maybe post your entire xorg.conf file.
http://sqrl.mcmaster.ca/~kahl/xorg.conf-2012-01-05 1080x1920 2048x1152 1920x1200 ----------- | | --------------------- | |--------------------| | | || || | | AsusV1 || Samsung1 || Apple1 | | || || | | || || | | |----------------------------------------- | | ----------- Radeon2 | Radeon1 :0.1 | :0.0 | Radeon1b | Radeon1a Right now, with Xinerama off, I get: On DISPLAY :0.1: $ xrandr Screen 1: minimum 320 x 200, current 1080 x 1920, maximum 8192 x 8192 DVI-2 connected 1080x1920+0+0 left (normal left inverted right x axis y axis) 521mm x 293mm 1920x1080 60.0*+ ... $ ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo" Xlib: extension "XINERAMA" missing on display ":0.1". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 1080, rect_height = 1920}] OK. On DISPLAY :0.0: $ xrandr Screen 0: minimum 320 x 200, current 3968 x 1200, maximum 8192 x 8192 DVI-0 connected 1920x1200+2048+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... $ ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo" Xlib: extension "XINERAMA" missing on display ":0.0". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 3968, rect_height = 1200}] I consider this as wrong and would expect two separate rectangles to be reported for the two outputs DVI-0 and DVI-1. (That was probably the case while the second card was deactivated.)
From your post, I suspect that the only reason you want it is that your xinerama setup still reports everything as one big screen, which is really strange.
With Xinerama on, I don't get the ``extension "XINERAMA" missing'' messages, and I get the two rectangles from above in one list, no matter whether I use ScreenRadeon1 or the attempts ScreenRadeon1a and ScreenRadeon1b at putting the two monitors into separate screens (which only seems to make everything worse). What makes ``Xinerama on'' unusable right now is that the monitors start panning around some virtual space I don't understand when I move the mouse beyond some of their edges, and don't pan back when I try the opposite edges. Wolfram

On Thu, 5 Jan 2012 19:16:28 -0500
Wolfram Kahl
On Thu, Jan 05, 2012 at 03:53:47PM -0400, Norbert Zeh wrote: I am running to equal ATI cards with the radeon driver.
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
Indeed, xrandr and xinerama are incompatible. Do you need xrandr? I just knew no other tool that produces that kind of information...
Xrandr is the preferred solution. Xinerama has missing functionality and vague specs.
Can you maybe post your entire xorg.conf file. http://sqrl.mcmaster.ca/~kahl/xorg.conf-2012-01-05
1080x1920 2048x1152 1920x1200 ----------- | | --------------------- | |--------------------| | | || || | | AsusV1 || Samsung1 || Apple1 | | || || | | || || | | |----------------------------------------- | | -----------
Radeon2 | Radeon1 :0.1 | :0.0 | Radeon1b | Radeon1a
Right now, with Xinerama off, I get: On DISPLAY :0.0: $ xrandr Screen 0: minimum 320 x 200, current 3968 x 1200, maximum 8192 x 8192 DVI-0 connected 1920x1200+2048+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... $ ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo" Xlib: extension "XINERAMA" missing on display ":0.0". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 3968, rect_height = 1200}]
I consider this as wrong and would expect two separate rectangles to be reported for the two outputs DVI-0 and DVI-1. (That was probably the case while the second card was deactivated.)
This is correct for an xrandr config. The two monitors (DVI-1 and DVI-1) are views into a single logical screen (0). DVI-0 is a 1920x1200 view whose left edge is at 2048 in the logical screen. DVI-1 is a 2048x1152 view whose left edge is at the left edge of the logical screen. Programs that properly support xrandr will get all that information and work properly. I'm on an extended trip, and can't really play with multiple cards, but with one card and two monitors, I get that kind of list (one logical screen with two monitors) from xrandr. Xmonad seems to work ok. Not sure I like it, but I switched from wmii to xmonad while on the trip, so haven't configured it for a multihead system, and probably won't be doing that anytime soon. Anyway, the mouse will move between the two displays correctly when I move the mouse. Using the "switch screen" commands in the default config switches focus. The two screens do seem to be using the same stack, which causes some interesting behaviors. And I think I need a second instance of xmobar as well.
What makes ``Xinerama on'' unusable right now is that the monitors start panning around some virtual space I don't understand when I move the mouse beyond some of their edges, and don't pan back when I try the opposite edges.
Ugh. Never saw that with a Xinerama config. On the other hand,
changing drivers changed the behavior, so this may be an issue with
the driver.

On Thu, Jan 05, 2012 at 05:08:29PM -0800, Mike Meyer wrote:
On Thu, 5 Jan 2012 19:16:28 -0500 Wolfram Kahl
wrote: On Thu, Jan 05, 2012 at 03:53:47PM -0400, Norbert Zeh wrote: I am running to equal ATI cards with the radeon driver.
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
Indeed, xrandr and xinerama are incompatible. Do you need xrandr? I just knew no other tool that produces that kind of information...
Xrandr is the preferred solution. Xinerama has missing functionality and vague specs.
However: * With Xinerama on, xrandr is not available. * With Xinerama off, I have two displays, and it appears that not only xmonad cannot move windows between the two.
[...]
Right now, with Xinerama off, I get: On DISPLAY :0.0: $ xrandr Screen 0: minimum 320 x 200, current 3968 x 1200, maximum 8192 x 8192 DVI-0 connected 1920x1200+2048+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... $ ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo" Xlib: extension "XINERAMA" missing on display ":0.0". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 3968, rect_height = 1200}]
I consider this as wrong and would expect two separate rectangles to be reported for the two outputs DVI-0 and DVI-1. (That was probably the case while the second card was deactivated.)
This is correct for an xrandr config.
I wanted to say, more precisely, that I consider the output of Graphics.X11.Xinerama.getScreenInfo to be either wrong, or inappropriate for xmonad to base its screen subdivisions on.
The two monitors (DVI-1 and DVI-1) are views into a single logical screen (0). DVI-0 is a 1920x1200 view whose left edge is at 2048 in the logical screen. DVI-1 is a 2048x1152 view whose left edge is at the left edge of the logical screen. Programs that properly support xrandr will get all that information and work properly.
I'm on an extended trip, and can't really play with multiple cards, but with one card and two monitors, I get that kind of list (one logical screen with two monitors) from xrandr. Xmonad seems to work ok. Not sure I like it, but I switched from wmii to xmonad while on the trip, so haven't configured it for a multihead system, and probably won't be doing that anytime soon.
Anyway, the mouse will move between the two displays correctly when I move the mouse. Using the "switch screen" commands in the default config switches focus. The two screens do seem to be using the same stack, which causes some interesting behaviors.
That is what I consider ``normal xmonad behaviour'', and I had that with two monitors on one card as well. Now I would like that with three monitors, and I just happen to have them on two cards... Wolfram

On Thu, Jan 5, 2012 at 20:31, Wolfram Kahl
* With Xinerama off, I have two displays, and it appears that not only xmonad cannot move windows between the two.
For some reason the server is using legacy multihead mode, which as you've observed is not all that friendly. (BTW, in legacy multihead there is *no* way to move windows between screens. This is an X server limitation; xmonad has no control over it. It's one of the reasons that there exist hacks such as xmove2.) I would have expected that there be some way to tie them together with xrandr, instead of it using legacy mode; but on the other hand I seem to recall some vendors' video drivers don't support that part of the xrandr spec. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On Thu, 5 Jan 2012 20:31:59 -0500
Wolfram Kahl
On Thu, Jan 05, 2012 at 05:08:29PM -0800, Mike Meyer wrote:
On Thu, 5 Jan 2012 19:16:28 -0500 Wolfram Kahl
wrote: On Thu, Jan 05, 2012 at 03:53:47PM -0400, Norbert Zeh wrote: I am running to equal ATI cards with the radeon driver.
(2) In xorg.conf ServerFlags: Option "Xinerama" "true"
Now xrandr does not work anymore, and xmonad sees one big area.
Indeed, xrandr and xinerama are incompatible. Do you need xrandr? I just knew no other tool that produces that kind of information...
Xrandr is the preferred solution. Xinerama has missing functionality and vague specs.
However:
* With Xinerama on, xrandr is not available.
That doesn't seem right. Both systems I have available have both the xrandr and xinerama extensions working in the X server. At least, I can query the screen info using either extension. What makes you say this?
* With Xinerama off, I have two displays, and it appears that not only xmonad cannot move windows between the two.
That's standard X behavior. It takes an extension to let you move windows between multiple screens. It's not clear that xrandr supports multiple cards. I've certainly never done it.
[...]
Right now, with Xinerama off, I get: On DISPLAY :0.0: $ xrandr Screen 0: minimum 320 x 200, current 3968 x 1200, maximum 8192 x 8192 DVI-0 connected 1920x1200+2048+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... $ ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo" Xlib: extension "XINERAMA" missing on display ":0.0". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 3968, rect_height = 1200}]
I consider this as wrong and would expect two separate rectangles to be reported for the two outputs DVI-0 and DVI-1. (That was probably the case while the second card was deactivated.)
This is correct for an xrandr config.
I wanted to say, more precisely, that I consider the output of Graphics.X11.Xinerama.getScreenInfo to be either wrong, or inappropriate for xmonad to base its screen subdivisions on.
Ah, right. yeah, the ghc output is wrong.
The solution seems to be to list the two outputs on the one card as
different devices, at least according to this:
https://bbs.archlinux.org/viewtopic.php?id=115596

On Fri, Jan 06, 2012 at 08:10:48AM -0800, Mike Meyer wrote:
On Thu, 5 Jan 2012 20:31:59 -0500 Wolfram Kahl
wrote: On Thu, Jan 05, 2012 at 05:08:29PM -0800, Mike Meyer wrote:
Xrandr is the preferred solution. Xinerama has missing functionality and vague specs.
However:
* With Xinerama on, xrandr is not available.
That doesn't seem right. Both systems I have available have both the xrandr and xinerama extensions working in the X server. At least, I can query the screen info using either extension. What makes you say this?
The fact that while I am running an X server with Xinerama On, when I issue the command ``xrandr'', I only get the error message: RandR extension missing On Thu, Jan 05, 2012 at 11:20:40PM -0400, Norbert Zeh wrote:
I'm attaching an updated version of your xorg.conf file, which I fashioned to (a) match my own current setup and what I learned from all the xinerama setups I used before and (b) match what man xorg.conf actually has to say about driving multiple monitors off a single card. No guarantees this will not simply not work at all (as in "the X server doesn't even start"), but we have to start somewhere. So, do try it out.
Thanks a lot! Unfortunately, my current impression is that the radeon driver might be the source of at least the differences, and probably even of the problems...
1080x1920 2048x1152 1920x1200 ----------- | | --------------------- | |--------------------| | | || || | | AsusV1 || Samsung1 || Apple1 | | || || | | || || | | |----------------------------------------- | | -----------
Radeon2 | Radeon1 :0.1 | :0.0 | Radeon1b | Radeon1a
# Tried to fashion this after my quad-monitor NVIDIA setup on archlinux to # match your triple-monitor ATI setup. Don't ask me why what you are doing # does not work. I'm just trying to start from what I know *does* work for me # and see whether we can tweak this into something that does work for you. # # Apart from cleaning out some comments and changing indentation so I was able # to consume the information more easily, there were three potentially # important changes I made: # # 1) Specify the relative screen positioning in the ServerLayout section
(absolute)
# 2) Have one Device section per monitor. That is, the card with two monitors # has two corresponding Device sections with different Screen numbers. # According to man xorg.conf, this is as it should be, and it certainly is the # only way I ever got xinerama to work on any of my setups.
I had not noticed that previously, but had only seen somewhere the version with the two DVI-* outputs specified to two monitors in a single device section. man xorg.conf is indeed quite unambiguous about that, but my radeon driver seems to not like those Screen lines at all: (EE) RADEON(1): reusing fd for second head I tried setting Screen 2 on AsusV1, but that gives: (EE) Screen 2 deleted because of no matching config section. Re-inserting the Option "Monitor-DVI-*" XYZ lines AND removing the Screen lines was the only way I got to a point where a terminal would start.
# 3) Got rid of the Virtual display sizes, as I suspect they were the source of # your panning issues.
(They were commented out anyway, and still are in my versions of the xorg.conf.)
Section "ServerLayout" # Note this layout will currently align your monitors along their top edges. # Once we get this working, we can easily tweak this aspect. Identifier "Main Layout" # This whole layout here may possibly also be achieved using LeftOf/RightOf # statements, but I opted for absolute coordinates because they are # necessary if you want to tweak the relative vertical alignment of # monitors, as I had to learn the hard way. Screen 0 "ScreenApple1" 3128 0 Screen 1 "ScreenSamsung1" 1080 0 Screen 2 "ScreenAsusV1" 0 0 InputDevice "Keyboard0" "CoreKeyboard" # Not sure you need this, but it's there in my server layout InputDevice "Mouse0" "CorePointer" #
I have xorg.conf.d files taking care of input --- no problems there.
Option "Xinerama" "1" EndSection
[...]
Section "Device" Identifier "DeviceApple1" Driver "radeon" BusID "PCI:06:00:0" Option "Int10" "True"
I tried without Int10 (*_E), and saw no difference, except two fewer WW lines in the log. Here are all the files --- only for the last two, I actually had X working. (For the others, I could not start a terminal, and Samsung1 reported no input, but I still had to manually ^C the startx.) http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_Zeh1 http://sqrl.mcmaster.ca/~kahl/xorg.conf_Zeh1 http://sqrl.mcmaster.ca/~kahl/xorg.conf_Zeh2 http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_Zeh2 http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_A http://sqrl.mcmaster.ca/~kahl/xorg.conf_A http://sqrl.mcmaster.ca/~kahl/xorg.conf_B http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_B http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_C http://sqrl.mcmaster.ca/~kahl/xorg.conf_C http://sqrl.mcmaster.ca/~kahl/xorg.conf_D http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_D http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_E http://sqrl.mcmaster.ca/~kahl/xorg.conf_E With the last two (only difference is Int10), I get: Xinerama.getScreenInfo result: Rectangle {rect_x = 2048, rect_y = 0, rect_width = 2048, rect_height = 1200} Rectangle {rect_x = 0, rect_y = 50, rect_width = 1080, rect_height = 1920} Same XMonad screen shown (cloned) on Samsung1 and Apple1, size 2048x1200. Bottom 48 pixel rows missing on Samsung1, not panning. Apple1 is panning with the mouse. The mouse never leaves that screen, that is, the cursor is shown simultaneously on Samsung1 and Apple1, and never reaches AsusV1. As so far always with Xinerama on: $ xrandr RandR extension missing This might be a driver problem, too. Usin mod4-e I can move the keyboard focus to AsusV1 (sometimes; it apparently requires previous mouse movement) so I can start a terminal there. The mouse still does not move over to AsusV1. Sometimes keyboard focus randomly switches back to the Samsung/Apple screen. Switching Xinerama Off got me almost back to where I was before, except that the mouse still didnt't reach AsusV1: http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_F http://sqrl.mcmaster.ca/~kahl/xorg.conf_F kahl@heraklit ~ $ runhaskell CheckX.hs Xlib: extension "XINERAMA" missing on display ":0.0". Xinerama.getScreenInfo result: Rectangle {rect_x = 0, rect_y = 0, rect_width = 2048, rect_height = 1200} kahl@heraklit ~ $ xrandr Screen 0: minimum 320 x 200, current 2048 x 1200, maximum 8192 x 8192 DisplayPort-0 disconnected (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis) DVI-0 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... kahl@heraklit ~ $ xrandr --output DVI-1 --left-of DVI-0 kahl@heraklit ~ $ xrandr Screen 0: minimum 320 x 200, current 3968 x 1200, maximum 8192 x 8192 DisplayPort-0 disconnected (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis) DVI-0 connected 1920x1200+2048+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.9*+ DVI-1 connected 2048x1152+0+0 (normal left inverted right x axis y axis) 510mm x 287mm 2048x1152 59.9*+ ... kahl@heraklit ~ $ runhaskell CheckX.hs Xlib: extension "XINERAMA" missing on display ":0.0". Xinerama.getScreenInfo result: Rectangle {rect_x = 0, rect_y = 0, rect_width = 3968, rect_height = 1200} kahl@heraklit ~ $ DISPLAY=:0.1 terminal & [1] 683 kahl@heraklit ~ $ DISPLAY=:0.1 xmonad & [2] 700 kahl@heraklit ~ $ Xlib: extension "XINERAMA" missing on display ":0.1". So for work, I am now back to Xinerama Off and only one Radeon1 screen with only one Readeon1 device with two monitors: http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_G http://sqrl.mcmaster.ca/~kahl/xorg.conf_G On Fri, Jan 06, 2012 at 08:10:48AM -0800, Mike Meyer also wrote:
I wanted to say, more precisely, that I consider the output of Graphics.X11.Xinerama.getScreenInfo to be either wrong, or inappropriate for xmonad to base its screen subdivisions on.
Ah, right. yeah, the ghc output is wrong.
The solution seems to be to list the two outputs on the one card as different devices, at least according to this:
That essentially just gave me the additional hint to try ZaphodHeads: The only difference is that it starts with a wide Viewport on Apple1 and Samsung1, with Samsung1 still fixed in the upper left corner and Apple1 still panning, and the mouse still doesn't reach AsusV1. http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_H http://sqrl.mcmaster.ca/~kahl/xorg.conf_H In CheckX.hs, I currently have: import qualified Graphics.X11 as X11 import qualified Graphics.X11.Xinerama as Xinerama main = do display <- X11.openDisplay [] xineramaScreens <- Xinerama.getScreenInfo display putStrLn "Xinerama.getScreenInfo result:" mapM_ (putStrLn . (" " ++) . show) xineramaScreens I'll put more in once I find out what I can do with X... Wolfram

On Fri, 6 Jan 2012 23:18:50 -0500
Wolfram Kahl
On Fri, Jan 06, 2012 at 08:10:48AM -0800, Mike Meyer wrote:
On Thu, 5 Jan 2012 20:31:59 -0500 Wolfram Kahl
wrote: On Thu, Jan 05, 2012 at 05:08:29PM -0800, Mike Meyer wrote:
Xrandr is the preferred solution. Xinerama has missing functionality and vague specs.
However:
* With Xinerama on, xrandr is not available.
That doesn't seem right. Both systems I have available have both the xrandr and xinerama extensions working in the X server. At least, I can query the screen info using either extension. What makes you say this?
The fact that while I am running an X server with Xinerama On, when I issue the command ``xrandr'', I only get the error message:
RandR extension missing
That may be a sign that something else is wonky. Like:
On Thu, Jan 05, 2012 at 11:20:40PM -0400, Norbert Zeh wrote: Unfortunately, my current impression is that the radeon driver might be the source of at least the differences, and probably even of the problems...
I did find one note about that - seemed to indicated that xrandr wouldn't support multiple cards, and the current radeon driver expected you to use xrandr and didn't support xinerama properly. It was a couple of years old (using the beta xrandr 1.3 code), though.
# 1) Specify the relative screen positioning in the ServerLayout section
(absolute)
# 2) Have one Device section per monitor. That is, the card with two monitors # has two corresponding Device sections with different Screen numbers. # According to man xorg.conf, this is as it should be, and it certainly is the # only way I ever got xinerama to work on any of my setups.
I had not noticed that previously, but had only seen somewhere the version with the two DVI-* outputs specified to two monitors in a single device section.
man xorg.conf is indeed quite unambiguous about that, but my radeon driver seems to not like those Screen lines at all:
(EE) RADEON(1): reusing fd for second head
I tried setting Screen 2 on AsusV1, but that gives:
(EE) Screen 2 deleted because of no matching config section.
Re-inserting the
Option "Monitor-DVI-*" XYZ
lines AND removing the Screen lines was the only way I got to a point where a terminal would start. On Fri, Jan 06, 2012 at 08:10:48AM -0800, Mike Meyer also wrote:
I wanted to say, more precisely, that I consider the output of Graphics.X11.Xinerama.getScreenInfo to be either wrong, or inappropriate for xmonad to base its screen subdivisions on.
Ah, right. yeah, the ghc output is wrong.
The solution seems to be to list the two outputs on the one card as different devices, at least according to this:
That essentially just gave me the additional hint to try ZaphodHeads: The only difference is that it starts with a wide Viewport on Apple1 and Samsung1, with Samsung1 still fixed in the upper left corner and Apple1 still panning, and the mouse still doesn't reach AsusV1.
http://sqrl.mcmaster.ca/~kahl/Xorg.0.log_H http://sqrl.mcmaster.ca/~kahl/xorg.conf_H
I'm getting a "webpage not accessible" error trying to read these.
But you've got Xinerama on, multiple Device sections, using
ZaphodHeads to select the output on the card with two monitors? That
seems to be the key to this guys setup.
Just out of curiosity, have you tried a different window manager? Say
the default one, to see if you get the screens sorted properly? Or did
I already ask that (I know I meant to)?
participants (5)
-
Brandon Allbery
-
Mike Meyer
-
Norbert Zeh
-
Rogan Creswick
-
Wolfram Kahl