Hello, X11 folks:

How does XQuartz map Mac OS X “spaces” and “displays” to X “output”, “display”, and “screens”? How can I configure?

(I'd welcome an answer here. Or, if you like getting Stack Exchange points, I have asked the question at <https://apple.stackexchange.com/questions/308642/how-does-xquartz-map-mac-os-x-spaces-and-displays-to-x-output-display>, and I'll be glad to upvote helpful answers there.)

Mac OS X organises visual output and windows in terms of "spaces" (as in Mission Control) and "displays". Xquartz implements the X Windows model of "output", "display", and "screens". The X "display" is the totality of visual output devices associated with a single keyboard. X "screens" correspond to Mac "displays".

How does Xquartz map from Mac OS X concepts to X Windows concepts? How does Xquartz determine what "output", "display", and "screens" to generate when it starts an X server on a Mac?

For example, I have a MacBook Pro running Mac OS X El Capitan 10.11.6. It has a "built-in display" with 2880x1800 pixels. Because it is a high-resolution Retina display, Mac OS presents it as a conventional-resolution display with 1440x900 pixels in most cases. I have an external conventional-resolution display attached, with 1920x1200 pixels. I told Mac OS that the external display is arranged above the built-in display. In Mission Control, I have the "Displays have separate Spaces" option *un*checked.

I have Xquartz 1.18.4 installed as "xorg-server" from MacPorts. It is located at |/Applications/MacPorts/X11.app|. When I run that app, then run |xrandr| in a shell window, I get:

|% xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 2100, maximum 2880 x 2122
default connected 1920x2100+0+0 0mm x 0mm
2880x1800 60.00
1440x900 60.00
2560x1600 60.00
2048x1280 60.00
1024x768 60.00
800x600 60.00
640x480 60.00
1680x1050 60.00
1280x800 60.00
1920x2100 1.00*
1920x2122 2.00 |

So Xquartz appears to generated one X "output", named "default". It has created a single X "display", consisting of one X "screen" of a pixel size which is the union of my two displays: max(1440,1920) x (900+1200), or 1920x2100.

What is the algorithm Xquartz follows to make this mapping? Why is there only one "output", when the hardware drives two monitors? Why has Xquartz supplied one X "screen", instead of two? How does the configuration of Mac "spaces" and "Mission Control" affect this mapping? Pointers to documentation would be great. I can't find it.

And, how can I configure this mapping? Can I put something in a config file which causes Xquartz to treat each of my Mac "displays" as a separate X "screen"? Again, pointers to docs would be great.

The obvious use of |xrandr| seems to have no effect. For example,

|% xrandr --output default --fb 1920x1200
xrandr: Failed to get size of gamma for output default
xrandr: specified screen 1920x1200 not large enough for output default (1920x2100+0+0)
|

Again, I'd be glad for an answer here or on Stack Exchange. Thanks in advance.
Best regards,
       —Jim DeLaHunt, Vancouver, Canada

--
    --Jim DeLaHunt, [email protected]     http://blog.jdlh.com/ (http://jdlh.com/)
      multilingual websites consultant

      355-1027 Davie St, Vancouver BC V6E 4L2, Canada
         Canada mobile +1-604-376-8953

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription: 
https://lists.apple.com/mailman/options/x11-users/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to