@cindex multi-monitor
On some ``multi-monitor'' setups, a single X display outputs to more
-than one physical monitor. @code{display-monitor-attributes-list} and
-@code{frame-monitor-attributes} can be used to obtain information
-about each physical monitor on multi-monitor setups.
+than one physical monitor. You can use the functions
+@code{display-monitor-attributes-list} and @code{frame-monitor-attributes}
+to obtain information about such setups.
@defun display-monitor-attributes-list &optional display
This function returns a list of physical monitor attributes on
-@var{display}. Each element of the list is an association list,
-representing the attributes of each physical monitor. The first
-element corresponds to the primary monitor.
-
-Attributes for a physical monitor are:
+@var{display}, which defaults to that of the selected frame.
+Each element of the list is an association list, representing the
+attributes of a physical monitor. The first element corresponds to
+the primary monitor. The attribute keys and values are:
@table @samp
@item geometry
-Position and size in pixels in the form of @samp{(X Y WIDTH HEIGHT)}
+Position and size in pixels as @samp{(@var{x} @var{y}
+@var{width} @var{height})}.
@item workarea
-Position and size of the workarea in pixels in the form of @samp{(X Y
-WIDTH HEIGHT)}
+Position and size of the work area in pixels as
+@samp{(@var{x} @var{y} @var{width} @var{height})}.
@item mm-size
-Width and height in millimeters in the form of @samp{(WIDTH HEIGHT)}
+Width and height in millimeters as @samp{(@var{width} @var{height})}
@item frames
-List of frames dominated by the physical monitor
+List of frames that this physical monitor dominates (see below).
@item name
-Name of the physical monitor as a string
+Name of the physical monitor as @var{string}.
@end table
-where X, Y, WIDTH, and HEIGHT are integers. @samp{name} is optional.
-
-A frame is dominated by a physical monitor when either the
-largest area of the frame resides in the monitor, or the monitor
-is the closest to the frame if the frame does not intersect any
-physical monitors. Every non-tip frame (including invisible one)
-in a graphical display is dominated by exactly one physical
-monitor at a time, though it can span multiple (or no) physical
-monitors.
+@var{x}, @var{y}, @var{width}, and @var{height} are integers.
+@samp{name} may not be present.
-@var{display} defaults to the selected frame's display.
+A frame is @dfn{dominated} by a physical monitor when either the
+largest area of the frame resides in that monitor, or (if the frame
+does not intersect any physical monitors) that monitor is the closest
+to the frame. Every (non-tooltip) frame (whether visible or not) in a
+graphical display is dominated by exactly one physical monitor at a
+time, though the frame can span multiple (or no) physical monitors.
@end defun
@defun frame-monitor-attributes &optional frame
This function returns the attributes of the physical monitor
-dominating @var{frame}, which defaults to the selected frame.
-
-A frame is dominated by a physical monitor when either the
-largest area of the frame resides in the monitor, or the monitor
-is the closest to the frame if the frame does not intersect any
-physical monitors.
+dominating (see above) @var{frame}, which defaults to the selected frame.
@end defun
@node Frame Parameters
(defun frame-monitor-attributes (&optional frame)
"Return the attributes of the physical monitor dominating FRAME.
-If FRAME is omitted, describe the currently selected frame.
+If FRAME is omitted or nil, describe the currently selected frame.
A frame is dominated by a physical monitor when either the
largest area of the frame resides in the monitor, or the monitor
(defun display-monitor-attributes-list (&optional display)
"Return a list of physical monitor attributes on DISPLAY.
-Each element of the list represents the attributes of each
-physical monitor. The first element corresponds to the primary
-monitor.
+If DISPLAY is omitted or nil, it defaults to the selected frame's display.
+Each element of the list represents the attributes of a physical
+monitor. The first element corresponds to the primary monitor.
-Attributes for a physical monitor is represented as an alist of
-attribute keys and values as follows:
+The attributes for a physical monitor are represented as an alist
+of attribute keys and values as follows:
- geometry -- Position and size in pixels in the form of
- (X Y WIDTH HEIGHT)
- workarea -- Position and size of the workarea in pixels in the
+ geometry -- Position and size in pixels in the form of (X Y WIDTH HEIGHT)
+ workarea -- Position and size of the work area in pixels in the
form of (X Y WIDTH HEIGHT)
mm-size -- Width and height in millimeters in the form of
(WIDTH HEIGHT)
A frame is dominated by a physical monitor when either the
largest area of the frame resides in the monitor, or the monitor
is the closest to the frame if the frame does not intersect any
-physical monitors. Every non-tip frame (including invisible one)
+physical monitors. Every (non-tooltip) frame (including invisible ones)
in a graphical display is dominated by exactly one physical
monitor at a time, though it can span multiple (or no) physical
-monitors.
-If DISPLAY is omitted or nil, it defaults to the selected frame's display."
+monitors."
(let ((frame-type (framep-on-display display)))
(cond
((eq frame-type 'x)