elisp: Position Parameters
28.4.3.2 Position Parameters
............................
Position parameters’ values are measured in pixels. (Note that none of
these parameters exist on TTY frames.)
‘left’
The position, in pixels, of the left (or right) edge of the frame
with respect to the left (or right) edge of the screen. The value
may be:
an integer
A positive integer relates the left edge of the frame to the
left edge of the screen. A negative integer relates the right
frame edge to the right screen edge.
‘(+ POS)’
This specifies the position of the left frame edge relative to
the left screen edge. The integer POS may be positive or
negative; a negative value specifies a position outside the
screen or on a monitor other than the primary one (for
multi-monitor displays).
‘(- POS)’
This specifies the position of the right frame edge relative
to the right screen edge. The integer POS may be positive or
negative; a negative value specifies a position outside the
screen or on a monitor other than the primary one (for
multi-monitor displays).
Some window managers ignore program-specified positions. If you
want to be sure the position you specify is not ignored, specify a
non-‘nil’ value for the ‘user-position’ parameter as well.
If the window manager refuses to align a frame at the left or top
screen edge, combining position notation and ‘user-position’ as in
(modify-frame-parameters
nil '((user-position . t) (left . (+ -4))))
may help to override that.
‘top’
The screen position of the top (or bottom) edge, in pixels, with
respect to the top (or bottom) edge of the screen. It works just
like ‘left’, except vertically instead of horizontally.
‘icon-left’
The screen position of the left edge of the frame’s icon, in
pixels, counting from the left edge of the screen. This takes
effect when the frame is iconified, if the window manager supports
this feature. If you specify a value for this parameter, then you
must also specify a value for ‘icon-top’ and vice versa.
‘icon-top’
The screen position of the top edge of the frame’s icon, in pixels,
counting from the top edge of the screen. This takes effect when
the frame is iconified, if the window manager supports this
feature.
‘user-position’
When you create a frame and specify its screen position with the
‘left’ and ‘top’ parameters, use this parameter to say whether the
specified position was user-specified (explicitly requested in some
way by a human user) or merely program-specified (chosen by a
program). A non-‘nil’ value says the position was user-specified.
Window managers generally heed user-specified positions, and some
heed program-specified positions too. But many ignore
program-specified positions, placing the window in a default
fashion or letting the user place it with the mouse. Some window
managers, including ‘twm’, let the user specify whether to obey
program-specified positions or ignore them.
When you call ‘make-frame’, you should specify a non-‘nil’ value
for this parameter if the values of the ‘left’ and ‘top’ parameters
represent the user’s stated preference; otherwise, use ‘nil’.