elisp: Size Parameters
28.4.3.3 Size Parameters
........................
Frame parameters specify frame sizes in character units. On graphical
displays, the ‘default’ face determines the actual pixel sizes of these
character units (Face Attributes).
‘height’
The height of the frame’s text area (Frame Geometry), in
characters.
‘width’
The width of the frame’s text area (Frame Geometry), in
characters.
‘user-size’
This does for the size parameters ‘height’ and ‘width’ what the
‘user-position’ parameter (user-position Position
Parameters.) does for the position parameters ‘top’ and ‘left’.
‘fullscreen’
This parameter specifies whether to maximize the frame’s width,
height or both. Its value can be ‘fullwidth’, ‘fullheight’,
‘fullboth’, or ‘maximized’. A “fullwidth” frame is as wide as
possible, a “fullheight” frame is as tall as possible, and a
“fullboth” frame is both as wide and as tall as possible. A
“maximized” frame is like a “fullboth” frame, except that it
usually keeps its title bar and the buttons for resizing and
closing the frame. Also, maximized frames typically avoid hiding
any task bar or panels displayed on the desktop. A “fullboth”
frame, on the other hand, usually omits the title bar and occupies
the entire available screen space.
Full-height and full-width frames are more similar to maximized
frames in this regard. However, these typically display an
external border which might be absent with maximized frames. Hence
the heights of maximized and full-height frames and the widths of
maximized and full-width frames often differ by a few pixels.
With some window managers you may have to customize the variable
‘frame-resize-pixelwise’ (Size and Position) in order to
make a frame truly appear maximized or full-screen. Moreover, some
window managers might not support smooth transition between the
various full-screen or maximization states. Customizing the
variable ‘x-frame-normalize-before-maximize’ can help to overcome
that.
‘fullscreen-restore’
This parameter specifies the desired fullscreen state of the frame
after invoking the ‘toggle-frame-fullscreen’ command (
(emacs)Frame Commands) in the “fullboth” state. Normally this
parameter is installed automatically by that command when toggling
the state to fullboth. If, however, you start Emacs in the
“fullboth” state, you have to specify the desired behavior in your
initial file as, for example
(setq default-frame-alist
'((fullscreen . fullboth) (fullscreen-restore . fullheight)))
This will give a new frame full height after typing in it <F11> for
the first time.