Re: [xmonad] Problem with Multi-head setup

Here is the way I understand it. Likely some of the following
statements will be subtly wrong, and I apologize in advance for
spreading my misconceptions about X.
There are two distinct pieces of X called Xinerama. One of the pieces
is a set of library calls used for communicating the size and
locations of physical screens in logical space within a single
DISPLAY. xmonad uses these library calls to break your physical
screens into separate logical workspaces. As such, the library called
xinerama is required for multi-head support.
However, I understand that there are other ways of controlling
multiple monitors, in particular running several different DISPLAYs
under X, one for each screen. You may of course do this; then you
must start a separate xmonad instance for each DISPLAY. There is
currently no integration for this; i.e. no way to send windows from
one DISPLAY to another (though I hear rumors that some window managers
do have such capabilities).
Other than those two options, I am not familiar with any other way of
driving multiple monitors.
Cheers,
~d
Quoting Eric Thomas
Sorry for the noob question, but why is xinerama required for xmonad to work? As I understand it, xinerama just makes your multi head setup appear as though there is one long screen. However, I like it when my screens are treated as two different desktops. Does xmonad not support this?
Eric Thomas
On Sat, Aug 22, 2009 at 4:55 PM,
wrote: Hi Eric,
It sounds like you haven't got the Xinerama extension running; getting that set up is not xmonad-specific. There are many excellent tutorials on setting up Xinerama on the web; Google should help here. (For example, try "setting up Xinerama", which pointed me to < http://www.ibiblio.org/pub/Linux/docs/HOWTO/Xinerama-HOWTO>.) It also depends slightly on what graphics card you are using. If you've got an nvidia card with the proprietary nvidia drivers, check out the man pages for nvidia-xconfig; other people here may have other suggestions for other cards.
Cheers, ~d
Quoting Eric Thomas
: Hello,
When attempting to setup xmonad on a dual setup, I cannot use the keyboard on the second monitor.
The following command: ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo"
generates this output: Xlib: extension "XINERAMA" missing on display ":0.1". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 1280, rect_height = 1024}]
In the FAQ, its says to check my Xserver configuration, but I don't know what I need to check.
Any help would be appreciated.
Thanks,
Eric

Thanks for your followup.
What would be the correct way to set up the .xsession file?
I am trying the following:
exec /home/eric/bin/xmonad
setenv DISPLAY=beryllium:0.1 exec /home/eric/bin/xmonad
but the second display isn't loading xmonad correctly.
Eric Thomas
On Mon, Aug 24, 2009 at 3:41 PM,
Here is the way I understand it. Likely some of the following statements will be subtly wrong, and I apologize in advance for spreading my misconceptions about X.
There are two distinct pieces of X called Xinerama. One of the pieces is a set of library calls used for communicating the size and locations of physical screens in logical space within a single DISPLAY. xmonad uses these library calls to break your physical screens into separate logical workspaces. As such, the library called xinerama is required for multi-head support.
However, I understand that there are other ways of controlling multiple monitors, in particular running several different DISPLAYs under X, one for each screen. You may of course do this; then you must start a separate xmonad instance for each DISPLAY. There is currently no integration for this; i.e. no way to send windows from one DISPLAY to another (though I hear rumors that some window managers do have such capabilities).
Other than those two options, I am not familiar with any other way of driving multiple monitors.
Cheers, ~d
Quoting Eric Thomas
: Sorry for the noob question, but why is xinerama required for xmonad to
work? As I understand it, xinerama just makes your multi head setup appear as though there is one long screen. However, I like it when my screens are treated as two different desktops. Does xmonad not support this?
Eric Thomas
On Sat, Aug 22, 2009 at 4:55 PM,
wrote: Hi Eric,
It sounds like you haven't got the Xinerama extension running; getting that set up is not xmonad-specific. There are many excellent tutorials on setting up Xinerama on the web; Google should help here. (For example, try "setting up Xinerama", which pointed me to < http://www.ibiblio.org/pub/Linux/docs/HOWTO/Xinerama-HOWTO>.) It also depends slightly on what graphics card you are using. If you've got an nvidia card with the proprietary nvidia drivers, check out the man pages for nvidia-xconfig; other people here may have other suggestions for other cards.
Cheers, ~d
Quoting Eric Thomas
: Hello,
When attempting to setup xmonad on a dual setup, I cannot use the keyboard on the second monitor.
The following command: ghc -e "Graphics.X11.openDisplay [] >>= Graphics.X11.Xinerama.getScreenInfo"
generates this output: Xlib: extension "XINERAMA" missing on display ":0.1". [Rectangle {rect_x = 0, rect_y = 0, rect_width = 1280, rect_height = 1024}]
In the FAQ, its says to check my Xserver configuration, but I don't know what I need to check.
Any help would be appreciated.
Thanks,
Eric

Eric Thomas
Thanks for your followup.
What would be the correct way to set up the .xsession file? I am trying the following:
exec /home/eric/bin/xmonad setenv DISPLAY=beryllium:0.1 exec /home/eric/bin/xmonad
but the second display isn't loading xmonad correctly.
It won't, no. The exec causes the shell to vanish (so the second xmonad isn't seen at all). Try something like /home/eric/bin/xmonad & setenv DISPLAY=beryllium:0.1 exec /home/eric/bin/xmonad Presuming that works OK, you might want to start both instances in the background and use wait (to wait for both) at the end of the script. Or some variant like that---I'm not sure what would be most convenient for someone running two window managers. [...]

Quoting Bruce Stephens
Presuming that works OK, you might want to start both instances in the background and use wait (to wait for both) at the end of the script. Or
Ah, good point. I always forget these subtleties because I never quit xmonad. ^_^ ~d

Quoting Eric Thomas
What would be the correct way to set up the .xsession file? I am trying the following:
exec /home/eric/bin/xmonad setenv DISPLAY=beryllium:0.1 exec /home/eric/bin/xmonad
"exec" replaces the current process (i.e. your the shell running your .xsession file) with its argument, so this never reaches the second line. Your .xsession file can be as simple as /home/eric/bin/xmonad & DISPLAY=:0.1 /home/eric/bin/xmonad Cheers, ~d
participants (3)
-
Bruce Stephens
-
Eric Thomas
-
wagnerdm@seas.upenn.edu