You can read or change the size and position of a frame using the
frame parameters left
, top
, height
, and
width
. Whatever geometry parameters you don't specify are chosen
by the window manager in its usual fashion.
Here are some special features for working with sizes and positions:
Negative parameter values position the bottom edge of the window up from the bottom edge of the screen, or the right window edge to the left of the right edge of the screen. It would probably be better if the values were always counted from the left and top, so that negative arguments would position the frame partly off the top or left edge of the screen, but it seems inadvisable to change that now.
frame-height
and
frame-width
. When you are using a non-window terminal, the size
of the frame is normally the same as the size of the terminal screen.
To set the size based on values measured in pixels, use
frame-char-height
and frame-char-width
to convert
them to units of characters.
If pretend is non-nil
, then Emacs displays lines
lines of output in frame, but does not change its value for the
actual height of the frame. This is only useful for a terminal frame.
Using a smaller height than the terminal actually implements may be
useful to reproduce behavior observed on a smaller screen, or if the
terminal malfunctions when using its whole screen. Setting the frame
height "for real" does not always work, because knowing the correct
actual size may be necessary for correct cursor positioning on a
terminal frame.
set-frame-height
.
The older functions set-screen-height
and
set-screen-width
were used to specify the height and width of the
screen, in Emacs versions that did not support multiple frames. They
are semi-obsolete, but still work; they apply to the selected frame.
x-parse-geometry
converts a standard X window
geometry string to an alist that you can use as part of the argument to
make-frame
.
The alist describes which parameters were specified in geom, and
gives the values specified for them. Each element looks like
(parameter . value)
. The possible parameter
values are left
, top
, width
, and height
.
For the size parameters, the value must be an integer. The position
parameter names left
and top
are not totally accurate,
because some values indicate the position of the right or bottom edges
instead. These are the value possibilities for the position
parameters:
(+ position)
(- position)
Here is an example:
(x-parse-geometry "35x70+0-0") => ((height . 70) (width . 35) (top - 0) (left . 0))
Go to the first, previous, next, last section, table of contents.