To create a new frame, call the function
This function creates and returns a new frame, displaying the current buffer.
The alist argument is an alist that specifies frame parameters
for the new frame. See Frame Parameters. If you specify the
terminal parameter in alist, the new frame is created on
that terminal. Otherwise, if you specify the
frame parameter in alist, that determines whether the frame
should be displayed on a text terminal or a graphical terminal.
See Window Systems. If neither is specified, the new frame is
created in the same terminal as the selected frame.
Any parameters not mentioned in alist default to the values in
the alist default-frame-alist (see Initial Parameters);
parameters not specified there default from the X resources or its
equivalent on your operating system (see X Resources in The GNU Emacs Manual). After the frame is created, Emacs
applies any parameters listed in frame-inherited-parameters
(see below) and not present in the argument, taking the values from
the frame that was selected when
make-frame was called.
Note that on multi-monitor displays (see Multiple Terminals), the window manager might position the frame differently than specified by the positional parameters in alist (see Position Parameters). For example, some window managers have a policy of displaying the frame on the monitor that contains the largest part of the window (a.k.a. the dominating monitor).
This function itself does not make the new frame the selected frame. See Input Focus. The previously selected frame remains selected. On graphical terminals, however, the windowing system may select the new frame for its own reasons.
A normal hook run by
make-frame before it creates the frame.
An abnormal hook run by
make-frame after it creates the frame.
Each function in after-make-frame-functions receives one argument, the
frame just created.
This variable specifies the list of frame parameters that a newly
created frame inherits from the currently selected frame. For each
parameter (a symbol) that is an element in the list and is not present
in the argument to
make-frame, the function sets the value of
that parameter in the created frame to its value in the selected