Hello, lovely X11 people:
This has got to be an FAQ, but I've been unable to find something
in the FAQ or list archives.
I am using XQuartz 1.18.4 (installed via MacPorts xorg-server
1.18.4_1).
I have a Mac OS X 10.10.5 laptop, with multiple displays:
- Main laptop screen is Retina "built-in display", 15.4-inch,
with 2880x1800 resolution.
- I have the Built-in Display resolution to "default", a medium
setting between lots of windows with tiny text, and fewer
windows with larger text.
- External display is a SyncMaster Display, 24-inch, with
1920x1200 resolution.
- Display "Arrangement" is with the Built-in display below,
holding the primary menu bar, and the external monitor above it,
with the left edges aligned.
- The external SyncMaster display looks larger: both physically,
and in Display Preferences.
- The "Displays have separate Spaces" box in System Preferences
-- Mission Control is UNchecked.
When I run the X server (double-click
Applications/MacPorts/X11.app) then run an X application
"freeciv-gtk", the X display surface is a rectangle which is the
union of both displays. It includes some area to the right of the
Built-in Display and below the SyncMaster Display which is not on
either display. I can move X-client windows into this area and
they disappear. This is all on localhost, by the way.
My problem is app menus pulling down off the bottom of the
SyncMaster display. The X application "freeciv-gtk" has pop-up
menus at the bottom of its windows. When I position the app's
window on the SyncMaster display, and click to open the menus,
they fall off the bottom of the SyncMaster Display and into the
Built-in Display below. There is a menu bar at the top of the
Built-in Display. Both the menu bar and the physical gap between
the displays makes the menus crossing this boundary hard to use.
I believe that if the X app thinks its window is near the bottom
of the X display, these menus will pop upwards instead of
downwards. That would be good for me.
I would like to configure X11 on my Mac some way so that these
menus stay within the same physical display as the app window is
on. How can I do this?
This may require changing the Xquartz configuration so that it
treats the two Mac displays as two X display surfaces (I don't
know the right terminology). Alternatively, it's OK to have
Xquartz limit the X display surface only to my external SyncMaster
display. Is this possible?
I'm having a hard time finding even a description of how Xquartz
system presents the Mac OS displays and preferences (size,
resolution, etc) in X windows terms. I remember reading that the
"Displays have separate Spaces" setting is significant. Surely all
that is an FAQ, and is written down somewhere?
In case it's useful, here's what xrandr shows when the Built-in
Display is at default, medium resolution:
% xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 2100, maximum 2880 x 2422
default connected 1920x2100+0+0 0mm x 0mm
[list of resolutions omitted]
And here's what xrandr shows when I set the Built-in Display to
maximum, tiny-text resolution:
% xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 2400, maximum 2880 x 2422
default connected 1920x2400+0+0 0mm x 0mm
[list of resolutions omitted]
The pixel width of the X display is 1920 pixels in each case. When
the Built-in Display is at medium resolution, the pixel height is
(pixel height of SyncMaster display + (pixel height of Built-in
Display)/2). When the Built-in Display is at maximum resolution, the
pixel height is (pixel height of SyncMaster display)*2, or ((pixel
height of SyncMaster display)/2 + (pixel height of Built-in
Display)). I'm willing to believe that maximum resolution for the
Retina display is twice as fine as default resolution. That makes
these pixel heights plausible, but doesn't explain them.
If this is written down somewhere, just giving me the link would
be a good start.
Thank you in advance!
--Jim DeLaHunt, Vancouver, Canada
--
--Jim DeLaHunt, email@hidden http://blog.jdlh.com/ (http://jdlh.com/)
multilingual websites consultant
157-2906 West Broadway, Vancouver BC V6K 2G8, Canada
Canada mobile +1-604-376-8953