When Emacs is started up, it performs the following operations
normal-top-level in startup.el):
current-time(see Time of Day). It also sets after-init-time to
nil, which signals to Lisp programs that Emacs is being initialized.
window-system-initialization-alist. If the value of initial-window-system is windowsystem, then the appropriate initialization function is defined in the file term/windowsystem-win.el. This file should have been compiled into the Emacs executable when it was built.
custom-reevaluate-settingto re-initialize the members of the list custom-delayed-init-variables. These are any pre-loaded user options whose default value depends on the run-time, rather than build-time, context. See custom-initialize-delay.
nil, nor if the options ‘-q’, ‘-Q’, or ‘--batch’ were specified.
package-initializeto activate any optional Emacs Lisp package that has been installed. See Packaging Basics. However, Emacs doesn’t initialize packages when package-enable-at-startup is
nilor when it’s started with one of the options ‘-q’, ‘-Q’, or ‘--batch’. To initialize packages in the latter case,
package-initializeshould be called explicitly (e.g., via the ‘--funcall’ option).
current-time. This variable was set to
nilearlier; setting it to the current time signals that the initialization phase is over, and, together with before-init-time, provides the measurement of how long it took.
--batchmode, nor if term-file-prefix is
(substitute-command-keys initial-scratch-message)into that buffer.
frame-notice-user-settings, which modifies the parameters of the selected frame according to whatever the init files specify.
nil, or if the ‘--no-splash’ or ‘-Q’ command-line options were specified.
--daemonwas specified, it calls
server-start, and on Posix systems also detaches from the controlling terminal. See Emacs Server in The GNU Emacs Manual.
emacs-session-restorepassing it as argument the ID of the previous session. See Session Management.
The following options affect some aspects of the startup sequence.
This variable, if non-
nil, inhibits the startup screen. In
that case, Emacs typically displays the *scratch* buffer; but
see initial-buffer-choice, below.
Do not set this variable in the init file of a new user, or in a way that affects more than one user, as that would prevent new users from receiving information about copyleft and basic Emacs usage.
inhibit-startup-message and inhibit-splash-screen are aliases for this variable.
nil, this variable is a string that specifies a file or
directory for Emacs to display after starting up, instead of the
If its value is a function, Emacs calls that function which must
return a buffer which is then displayed.
If its value is t, Emacs displays the *scratch* buffer.
This variable controls the display of the startup echo area message. You can suppress the startup echo area message by adding text with this form to your init file:
(setq inhibit-startup-echo-area-message "your-login-name")
Emacs explicitly checks for an expression as shown above in your init file; your login name must appear in the expression as a Lisp string constant. You can also use the Customize interface. Other methods of setting inhibit-startup-echo-area-message to the same value do not inhibit the startup message. This way, you can easily inhibit the message for yourself if you wish, but thoughtless copying of your init file will not inhibit the message for someone else.
This variable, if non-
nil, should be a string, which is
treated as documentation to be
inserted into the *scratch* buffer when Emacs starts up. If it
nil, the *scratch* buffer is empty.
The following command-line options affect some aspects of the startup sequence. See Initial Options in The GNU Emacs Manual.
Do not display a splash screen.
Run without an interactive terminal. See Batch Mode.
Do not initialize any display; just start a server in the background.
Do not load either the init file, or the default library.
Do not load the site-start library.
Equivalent to ‘-q --no-site-file --no-splash’.