Variable: initial-frame-alist

initial-frame-alist is a customizable variable defined in frame.el.gz.

Value

nil

Documentation

Alist of parameters for the initial window-system (a.k.a. "GUI") frame.

You can set this in your init file; for example,

 (setq initial-frame-alist
       '((top . 1) (left . 1) (width . 80) (height . 55)))

Parameters specified here supersede the values given in default-frame-alist.

If the value calls for a frame without a minibuffer, and you have not created a minibuffer frame on your own, a minibuffer frame is created according to minibuffer-frame-alist.

Emacs reads your main init file after creating the initial frame, so setting it there won't have the expected effect. Instead, you can set it in early-init-file.

If you're using X, and you want (for instance) to have different geometries on different displays, you need to use this three-step process:

* Specify X resources to give the geometry you want.
* Set default-frame-alist to override these options so that they
  don't affect subsequent frames.
* Set initial-frame-alist in your normal init file in a way
  that matches the X resources, to override what you put in
  default-frame-alist.

View in manual

Probably introduced at or before Emacs version 24.1.

Source Code

;; Defined in /usr/src/emacs/lisp/frame.el.gz
;; The initial value given here used to ask for a minibuffer.
;; But that's not necessary, because the default is to have one.
;; By not specifying it here, we let an X resource specify it.
(defcustom initial-frame-alist nil
  "Alist of parameters for the initial window-system (a.k.a. \"GUI\") frame.
You can set this in your init file; for example,

 (setq initial-frame-alist
       \\='((top . 1) (left . 1) (width . 80) (height . 55)))

Parameters specified here supersede the values given in
`default-frame-alist'.

If the value calls for a frame without a minibuffer, and you have
not created a minibuffer frame on your own, a minibuffer frame is
created according to `minibuffer-frame-alist'.

Emacs reads your main init file after creating the initial frame,
so setting it there won't have the expected effect.  Instead, you
can set it in `early-init-file'.

If you're using X, and you want (for instance) to have different
geometries on different displays, you need to use this three-step
process:

* Specify X resources to give the geometry you want.
* Set `default-frame-alist' to override these options so that they
  don't affect subsequent frames.
* Set `initial-frame-alist' in your normal init file in a way
  that matches the X resources, to override what you put in
  `default-frame-alist'."
  :type `(repeat (cons :format "%v"
                       (symbol :tag "Parameter"
                               :completions ,frame--special-parameters)
                       (sexp :tag "Value"
                             :complete frame--complete-parameter-value)))
  :group 'frames)