]> code.delx.au - gnu-emacs/blobdiff - man/cmdargs.texi
(Mail Methods): Fix xref to Message manual.
[gnu-emacs] / man / cmdargs.texi
index dfabae712315eef65316566bf691d84c77ee2e35..3daf96f0d0087b661c3cab19a8f1b8f73dbc087c 100644 (file)
@@ -1,7 +1,7 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985,86,87,93,94,95,97,2001,03,2004 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Command Arguments, Antinews, Service, Top
+@node Command Arguments, X Resources, Service, Top
 @appendix Command Line Arguments
 @cindex command line arguments
 @cindex arguments (command line)
@@ -46,31 +46,33 @@ and the tables below always show an equal sign.
 
 @cindex initial options (command line)
 @cindex action options (command line)
+@vindex command-line-args
   Most options specify how to initialize Emacs, or set parameters for
 the Emacs session.  We call them @dfn{initial options}.  A few options
 specify things to do: for example, load libraries, call functions, or
 terminate Emacs.  These are called @dfn{action options}.  These and file
 names together are called @dfn{action arguments}.  Emacs processes all
-the action arguments in the order they are written.
+the action arguments in the order they are written.  The @file{.emacs} file
+can access the values of the action arguments as the elements of a list in
+the variable @code{command-line-args}.
+
+
 
 @menu
-* Action Arguments::   Arguments to visit files, load libraries,
-                         and call functions.
+* Action Arguments::    Arguments to visit files, load libraries,
+                          and call functions.
 * Initial Options::     Arguments that take effect while starting Emacs.
 * Command Example::     Examples of using command line arguments.
-* Resume Arguments::   Specifying arguments when you resume a running Emacs.
+* Resume Arguments::    Specifying arguments when you resume a running Emacs.
 * Environment::         Environment variables that Emacs uses.
-
 * Display X::           Changing the default display and using remote login.
-* Font X::             Choosing a font for text, under X.
-* Colors X::           Choosing colors, under X.
+* Font X::              Choosing a font for text, under X.
+* Colors::              Choosing display colors.
 * Window Size X::       Start-up window size, under X.
-* Borders X::          Internal and external borders, under X.
+* Borders X::           Internal and external borders, under X.
 * Title X::             Specifying the initial frame's title.
 * Icons X::             Choosing what sort of icon to use, under X.
-* Resources X::         Advanced use of classes and resources, under X.
-* Lucid Resources::     X resources for Lucid menus.
-* LessTif Resources::   X resources for LessTif and Motif menus.
+* Misc X::              Other display options.
 @end menu
 
 @node Action Arguments
@@ -80,12 +82,18 @@ the action arguments in the order they are written.
 
 @table @samp
 @item @var{file}
-@opindex --visit
-@itemx --visit=@var{file}
 @opindex --file
 @itemx --file=@var{file}
+@opindex --find-file
+@itemx --find-file=@var{file}
+@opindex --visit
+@itemx --visit=@var{file}
 @cindex visiting files, command-line argument
+@vindex inhibit-startup-buffer-menu
 Visit @var{file} using @code{find-file}.  @xref{Visiting}.
+If you visit several files at startup in this way, Emacs
+also displays a Buffer Menu buffer to show you what files it
+has visited.  You can inhibit that by setting @code{inhibit-startup-buffer-menu} to @code{t}.
 
 @item +@var{linenum} @var{file}
 @opindex +@var{linenum}
@@ -107,12 +115,21 @@ Load a Lisp library named @var{file} with the function @code{load}.
 directory, or in the Emacs library search path as specified
 with @env{EMACSLOADPATH} (@pxref{General Variables}).
 
+@item -L @var{dir}
+@opindex -L
+@itemx --directory=@var{dir}
+@opindex --directory
+Add directory @var{dir} to the variable @code{load-path}.
+
 @item -f @var{function}
 @opindex -f
 @itemx --funcall=@var{function}
 @opindex --funcall
 @cindex call Lisp functions, command-line argument
-Call Lisp function @var{function} with no arguments.
+Call Lisp function @var{function}.  If it is an interactive function
+(a command), it reads the arguments interactively just as if you had
+called the same function with a key sequence.  Otherwise, it calls the
+function with no arguments.
 
 @item --eval=@var{expression}
 @opindex --eval
@@ -130,13 +147,16 @@ what @kbd{M-x insert-file} does.  @xref{Misc File Ops}.
 @item --kill
 @opindex --kill
 Exit from Emacs without asking for confirmation.
-@end table
 
-@vindex command-line-args
-  The init file can access the values of the action arguments as the
-elements of a list in the variable @code{command-line-args}.  The init
-file can override the normal processing of the action arguments, or
-define new ones, by reading and setting this variable.
+@item --help
+@opindex --help
+Print a usage message listing all available options, then exit
+successfully.
+
+@item --version
+@opindex --version
+Print Emacs version, then exit successfully.
+@end table
 
 @node Initial Options
 @appendixsec Initial Options
@@ -159,6 +179,7 @@ of these files or substitute other files for them.
 @opindex --terminal
 @cindex device for Emacs terminal I/O
 Use @var{device} as the device for terminal input and output.
+@samp{--terminal} implies @samp{--no-window-system}.
 
 @item -d @var{display}
 @opindex -d
@@ -170,12 +191,13 @@ the initial Emacs frame.  @xref{Display X}, for more details.
 
 @item -nw
 @opindex -nw
-@itemx --no-windows
-@opindex --no-windows
+@itemx --no-window-system
+@opindex --no-window-system
 @cindex disable window system
 Don't communicate directly with the window system, disregarding the
-@env{DISPLAY} environment variable even if it is set.  This forces Emacs
-to run as if the display were a text-only terminal.
+@env{DISPLAY} environment variable even if it is set.  This means that
+Emacs uses the terminal from which it was launched for all its display
+and input.
 
 @need 3000
 @cindex batch mode
@@ -194,20 +216,39 @@ shell scripts, makefiles, and so on.  Normally the @samp{-l} option
 or @samp{-f} option will be used as well, to invoke a Lisp program
 to do the batch processing.
 
-@samp{-batch} implies @samp{-q} (do not load an init file).  It also
+@samp{--batch} implies @samp{-q} (do not load an init file).  It also
 causes Emacs to exit after processing all the command options.  In
 addition, it disables auto-saving except in buffers for which it has
 been explicitly requested.
 
+@item --script @var{file}
+@opindex --script
+@cindex script mode
+Run Emacs in batch mode, like @samp{--batch}, and then read and
+execute the Lisp code in @var{file}.
+
+The normal use of this option is in executable script files that run
+Emacs.  They can start with this text on the first line
+
+@example
+#!/usr/bin/emacs --script
+@end example
+
+@noindent
+which will invoke Emacs with @samp{--script} and supply the name of
+the script file as @var{file}.  Emacs Lisp then treats @samp{#!}  as a
+comment delimiter.
+
 @item -q
 @opindex -q
 @itemx --no-init-file
 @opindex --no-init-file
-@cindex bypassing init and site-start file
+@cindex bypassing init and @file{default.el} file
 @cindex init file, not loading
 @cindex @file{default.el} file, not loading
 Do not load your Emacs init file @file{~/.emacs}, or @file{default.el}
-either.  When invoked like this, Emacs does not allow saving options
+either.  Regardless of this switch, @file{site-start.el} is still loaded.
+When invoked like this, Emacs does not allow saving options
 changed with the @kbd{M-x customize} command and its variants.
 @xref{Easy Customization}.
 
@@ -215,9 +256,19 @@ changed with the @kbd{M-x customize} command and its variants.
 @opindex --no-site-file
 @cindex @file{site-start.el} file, not loading
 Do not load @file{site-start.el}.  The options @samp{-q}, @samp{-u}
-and @samp{-batch} have no effect on the loading of this file---this is
+and @samp{--batch} have no effect on the loading of this file---this is
 the only option that blocks it.
 
+@item --no-splash
+@opindex --no-splash
+@vindex inhibit-startup-message
+Do not display a splash screen on startup; this is equivalent to
+setting the variable @code{inhibit-startup-message} to non-@code{nil}.
+
+@item --no-desktop
+@opindex --no-desktop
+Do not reload any saved desktop.  @xref{Saving Emacs Sessions}.
+
 @item -u @var{user}
 @opindex -u
 @itemx --user=@var{user}
@@ -233,6 +284,8 @@ Enable the Emacs Lisp debugger for errors in the init file.
 
 @item --unibyte
 @opindex --unibyte
+@itemx --no-multibyte
+@opindex --no-multibyte
 @cindex unibyte operation, command-line argument
 Do almost everything with single-byte buffers and strings.
 All buffers and strings are unibyte unless you (or a Lisp program)
@@ -243,6 +296,8 @@ variable @env{EMACS_UNIBYTE} has the same effect.
 
 @item --multibyte
 @opindex --multibyte
+@itemx --no-unibyte
+@opindex --no-unibyte
 Inhibit the effect of @env{EMACS_UNIBYTE}, so that Emacs
 uses multibyte characters by default, as usual.
 @end table
@@ -263,7 +318,7 @@ emacs -batch foo.c -l hack-c -f save-buffer >& log
 This says to visit @file{foo.c}, load @file{hack-c.el} (which makes
 changes in the visited file), save @file{foo.c} (note that
 @code{save-buffer} is the function that @kbd{C-x C-s} is bound to), and
-then exit back to the shell (because of @samp{-batch}).  @samp{-batch}
+then exit back to the shell (because of @samp{--batch}).  @samp{--batch}
 also guarantees there will be no problem redirecting output to
 @file{log}, because Emacs will not assume that it has a display terminal
 to work with.
@@ -328,10 +383,13 @@ software) inherit the environment from Emacs, too.
 @findex getenv
   Inside Emacs, the command @kbd{M-x getenv} gets the value of an
 environment variable.  @kbd{M-x setenv} sets a variable in the Emacs
-environment.  The way to set environment variables outside of Emacs
-depends on the operating system, and especially the shell that you are
-using.  For example, here's how to set the environment variable
-@env{ORGANIZATION} to @samp{not very much} using Bash:
+environment.  (Environment variable substitutions with @samp{$} work
+in the value just as in file names; see @ref{File Names with $}.)
+
+  The way to set environment variables outside of Emacs depends on the
+operating system, and especially the shell that you are using.  For
+example, here's how to set the environment variable @env{ORGANIZATION}
+to @samp{not very much} using Bash:
 
 @example
 export ORGANIZATION="not very much"
@@ -344,13 +402,14 @@ and here's how to do it in csh or tcsh:
 setenv ORGANIZATION "not very much"
 @end example
 
-  When Emacs is uses the X Window System, it inherits the use
-of a large number of environment variables from the X libraries.  See
-the X documentation for more information.
+  When Emacs is using the X Window System, various environment
+variables that control X work for Emacs as well.  See the X
+documentation for more information.
 
 @menu
 * General Variables::   Environment variables that all versions of Emacs use.
 * Misc Variables::      Certain system-specific variables.
+* MS-Windows Registry:: An alternative to the environment on MS-Windows.
 @end menu
 
 @node General Variables
@@ -401,10 +460,10 @@ The location of the user's files in the directory tree; used for
 expansion of file names starting with a tilde (@file{~}).  On MS-DOS, it
 defaults to the directory from which Emacs was started, with @samp{/bin}
 removed from the end if it was present.  On Windows, the default value
-of @code{HOME} is @file{C:/}, the root directory of drive @file{C:}.
+of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}.
 @item HOSTNAME
 The name of the machine that Emacs is running on.
-@item INCPATH 
+@item INCPATH
 A colon-separated list of directories.  Used by the @code{complete} package
 to search for files.
 @item INFOPATH
@@ -427,7 +486,12 @@ variables is not set, the category defaults to the value of the
 @env{LANG} is not set.  But if @env{LC_ALL} is specified, it overrides
 the settings of all the other locale environment variables.
 
-The value of the LC_CTYPE category is
+On MS-Windows, if @env{LANG} is not already set in the environment
+when Emacs starts, Emacs sets it based on the system-wide default
+language, which you can set in the @samp{Regional Settings} Control Panel
+on some versions of MS-Windows.
+
+The value of the @env{LC_CTYPE} category is
 matched against entries in @code{locale-language-names},
 @code{locale-charset-language-names}, and
 @code{locale-preferred-coding-systems}, to select a default language
@@ -436,9 +500,6 @@ environment and coding system.  @xref{Language Environments}.
 The user's login name.  See also @env{USER}.
 @item MAIL
 The name of the user's system mail inbox.
-@item MAILRC
-Name of file containing mail aliases.  (The default is
-@file{~/.mailrc}.)
 @item MH
 Name of setup file for the mh system.  (The default is @file{~/.mh_profile}.)
 @item NAME
@@ -462,13 +523,16 @@ Used by the Gnus package.
 @item SHELL
 The name of an interpreter used to parse and execute programs run from
 inside Emacs.
-@cindex background mode, on @code{xterm}
+@item SMTPSERVER
+The name of the outgoing mail server.  Used by the SMTP library
+(@pxref{Top,,Sending mail via SMTP,smtpmail}).
+@cindex background mode, on @command{xterm}
 @item TERM
 The type of the terminal that Emacs is using.  This variable must be
 set unless Emacs is run in batch mode.  On MS-DOS, it defaults to
 @samp{internal}, which specifies a built-in terminal emulation that
 handles the machine's own display.  If the value of @env{TERM} indicates
-that Emacs runs in non-windowed mode from @code{xterm} or a similar
+that Emacs runs in non-windowed mode from @command{xterm} or a similar
 terminal emulator, the background mode defaults to @samp{light}, and
 Emacs will choose colors that are appropriate for a light background.
 @item TERMCAP
@@ -479,10 +543,10 @@ terminal specified by the @env{TERM} variable.  This defaults to
 Used by the Emerge package as a prefix for temporary files.
 @item TZ
 This specifies the current time zone and possibly also daylight
-saving time information.  On MS-DOS, if @code{TZ} is not set in the
+saving time information.  On MS-DOS, if @env{TZ} is not set in the
 environment when Emacs starts, Emacs defines a default value as
 appropriate for the country code returned by DOS.  On MS-Windows, Emacs
-does not use @code{TZ} at all.
+does not use @env{TZ} at all.
 @item USER
 The user's login name.  See also @env{LOGNAME}.  On MS-DOS, this
 defaults to @samp{root}.
@@ -537,10 +601,66 @@ actually used.
 
 @item WINDOW_GFX
 Used when initializing the Sun windows system.
+
+@item PRELOAD_WINSOCK
+On MS-Windows, if you set this variable, Emacs will load and initialize
+the network library at startup, instead of waiting until the first
+time it is required.
+
+@item emacs_dir
+On MS-Windows, @env{emacs_dir} is a special environment variable, which
+indicates the full path of the directory in which Emacs is installed.
+If Emacs is installed in the standard directory structure, it
+calculates this value automatically.  It is not much use setting this
+variable yourself unless your installation is non-standard, since
+unlike other environment variables, it will be overridden by Emacs at
+startup.  When setting other environment variables, such as
+@env{EMACSLOADPATH}, you may find it useful to use @env{emacs_dir}
+rather than hard-coding an absolute path.  This allows multiple
+versions of Emacs to share the same environment variable settings, and
+it allows you to move the Emacs installation directory, without
+changing any environment or registry settings.
 @end table
 
+@node MS-Windows Registry
+@appendixsubsec The MS-Windows System Registry
+@pindex addpm, MS-Windows installation program
+@cindex registry, setting environment variables and resources on MS-Windows
+
+On MS-Windows, the installation program @command{addpm.exe} adds values
+for @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA},
+@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the
+@file{HKEY_LOCAL_MACHINE} section of the system registry, under
+@file{/Software/GNU/Emacs}.  It does this because there is no standard
+place to set environment variables across different versions of
+Windows.  Running @command{addpm.exe} is no longer strictly
+necessary in recent versions of Emacs, but if you are upgrading from
+an older version, running @command{addpm.exe} ensures that you do not have
+older registry entries from a previous installation, which may not be
+compatible with the latest version of Emacs.
+
+When Emacs starts, as well as checking the environment, it also checks
+the System Registry for those variables and for @env{HOME}, @env{LANG}
+and @env{PRELOAD_WINSOCK}.
+
+To determine the value of those variables, Emacs goes through the
+following procedure.  First, the environment is checked.  If the
+variable is not found there, Emacs looks for registry keys by that
+name under @file{/Software/GNU/Emacs}; first in the
+@file{HKEY_CURRENT_USER} section of the registry, and if not found
+there, in the @file{HKEY_LOCAL_MACHINE} section.  Finally, if Emacs
+still cannot determine the values, compiled-in defaults are used.
+
+In addition to the environment variables above, you can also add many
+of the settings which on X belong in the @file{.Xdefaults} file
+(@pxref{X Resources}) to the @file{/Software/GNU/Emacs} registry key.
+Settings you add to the @file{HKEY_LOCAL_MACHINE} section will affect
+all users of the machine.  Settings you add to the
+@file{HKEY_CURRENT_USER} section will only affect you, and will
+override machine wide settings.
+
 @node Display X
-@appendixsec Specifying the Display Name 
+@appendixsec Specifying the Display Name
 @cindex display name (X Window System)
 @cindex @env{DISPLAY} environment variable
 
@@ -579,7 +699,7 @@ emacs --display=glasperle:0 &
 @end smallexample
 
   You can inhibit the direct use of the window system and GUI with the
-@samp{-nw} option.  It tells Emacs to display using ordinary ASCII on
+@samp{-nw} option.  It tells Emacs to display using ordinary @acronym{ASCII} on
 its controlling terminal.  This is also an initial option.
 
   Sometimes, security arrangements prevent a program on a remote system
@@ -591,7 +711,7 @@ Xlib:  connection to "glasperle:0.0" refused by server
 @end smallexample
 
 @noindent
-You might be able to overcome this problem by using the @code{xhost}
+You might be able to overcome this problem by using the @command{xhost}
 command on the local system to give permission for access from your
 remote machine.
 
@@ -599,11 +719,10 @@ remote machine.
 @appendixsec Font Specification Options
 @cindex font name (X Window System)
 
-  By default, Emacs displays text in the font named @samp{9x15}, which
-makes each character nine pixels wide and fifteen pixels high.  You can
-specify a different font on your command line through the option
-@samp{-fn @var{name}} (or @samp{--font}, which is an alias for
-@samp{-fn}).
+  By default, Emacs displays text in a twelve point Courier font (when
+using X).  You can specify a different font on your command line
+through the option @samp{-fn @var{name}} (or @samp{--font}, which is
+an alias for @samp{-fn}).
 
 @table @samp
 @item -fn @var{name}
@@ -614,15 +733,23 @@ specify a different font on your command line through the option
 Use font @var{name} as the default font.
 @end table
 
-  Under X, each font has a long name which consists of eleven words or
-numbers, separated by dashes.  Some fonts also have shorter
-nicknames---@samp{9x15} is such a nickname.  You can use either kind of
-name.  You can use wildcard patterns for the font name; then Emacs lets
-X choose one of the fonts that match the pattern.  Here is an example,
-which happens to specify the font whose nickname is @samp{6x13}:
+  Under X, each font has a long name which consists of fourteen words
+or numbers, separated by dashes.  Some fonts also have shorter
+nicknames.  For instance, @samp{9x15} is such a nickname.  This font
+makes each character nine pixels wide and fifteen pixels high.  You
+can use either kind of name.  Case is insignificant in both kinds.
+You can use wildcard patterns for the font name; then Emacs lets X
+choose one of the fonts that match the pattern.  The wildcard
+character @samp{*} matches any sequence of characters (including none)
+and @samp{?} matches any single character.  However, matching is
+implementation-dependent, and can be inaccurate when wildcards match
+dashes in a long name.  For reliable results, supply all 14 dashes and
+use wildcards only within a field.  Here is an example, which happens
+to specify the font whose nickname is @samp{6x13}:
 
 @smallexample
-emacs -fn "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" &
+emacs -fn \
+  "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" &
 @end smallexample
 
 @noindent
@@ -630,13 +757,25 @@ You can also specify the font in your @file{.Xdefaults} file:
 
 @smallexample
 emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
+@end smallexample
+
+  Note that if you use a wildcard pattern on the command line, you
+need to enclose it in single or double quotes, to prevent the shell
+from accidentally expanding it into a list of file names.  On the
+other hand, you should not quote the name in the @file{.Xdefaults}
+file.
+
+The default font used by Emacs (under X) is:
+
+@smallexample
+-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
 @end smallexample
 
   A long font name has the following form:
 
 @smallexample
 -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
-@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{charset}
+@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
 @end smallexample
 
 @table @var
@@ -677,16 +816,21 @@ This is @samp{m} (monospace), @samp{p} (proportional) or @samp{c}
 (character cell).
 @item width
 This is the average character width, in pixels, multiplied by ten.
-@item charset
-This is the character set that the font depicts.
-Normally you should use @samp{iso8859-1}.
+@item registry
+@itemx encoding
+These together make up the X font character set that the font depicts.
+(X font character sets are not the same as Emacs charsets, but they
+are solutions for the same problem.)  You can use the
+@command{xfontsel} program to check which choices you have.  However,
+normally you should use @samp{iso8859} for @var{registry} and @samp{1}
+for @var{encoding}.
 @end table
 
 @cindex listing system fonts
   You will probably want to use a fixed-width default font---that is,
 a font in which all characters have the same width.  Any font with
 @samp{m} or @samp{c} in the @var{spacing} field of the long name is a
-fixed-width font.  Here's how to use the @code{xlsfonts} program to
+fixed-width font.  Here's how to use the @command{xlsfonts} program to
 list all the fixed-width fonts available on your system:
 
 @example
@@ -696,7 +840,7 @@ xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
 @end example
 
 @noindent
-To see what a particular font looks like, use the @code{xfd} command.
+To see what a particular font looks like, use the @command{xfd} command.
 For example:
 
 @example
@@ -710,7 +854,7 @@ displays the entire font @samp{6x13}.
 (@pxref{Frame Parameters}) or for a specific kind of text
 (@pxref{Faces}).
 
-@node Colors X
+@node Colors
 @appendixsec Window Color Options
 @cindex color of window
 @cindex text colors, from command line
@@ -770,6 +914,36 @@ Specify the color for the mouse cursor when the mouse is in the Emacs window.
 @opindex --reverse-video
 @cindex reverse video, command-line argument
 Reverse video---swap the foreground and background colors.
+@item --color=@var{mode}
+@opindex --color
+@cindex standard colors on a character terminal
+For a character terminal only, specify the mode of color support.  The
+parameter @var{mode} can be one of the following:
+@table @samp
+@item never
+@itemx no
+Don't use colors even if the terminal's capabilities specify color
+support.
+@item default
+@itemx auto
+Same as when @option{--color} is not used at all: Emacs detects at
+startup whether the terminal supports colors, and if it does, turns on
+colored display.
+@item always
+@itemx yes
+@itemx ansi8
+Turn on the color support unconditionally, and use color commands
+specified by the ANSI escape sequences for the 8 standard colors.
+@item @var{num}
+Use color mode for @var{num} colors.  If @var{num} is -1, turn off
+color support (equivalent to @samp{never}); if it is 0, use the
+default color support for this terminal (equivalent to @samp{auto});
+otherwise use an appropriate standard mode for @var{num} colors.  If
+there is no mode that supports @var{num} colors, Emacs acts as if
+@var{num} were 0, i.e.@: it uses the terminal's default color support
+mode.
+@end table
+If @var{mode} is omitted, it defaults to @var{ansi8}.
 @end table
 
   For example, to use a coral mouse cursor and a slate blue text cursor,
@@ -786,29 +960,51 @@ emacs -ms coral -cr 'slate blue' &
 text-only terminals as well as on window systems.
 
 @node Window Size X
-@appendixsec Options for Window Geometry
+@appendixsec Options for Window Size and Position
 @cindex geometry of Emacs window
 @cindex position and size of Emacs frame
 @cindex width and height of Emacs frame
+@cindex specifying fullscreen for Emacs frame
 
-  The @samp{--geometry} option controls the size and position of the
-initial Emacs frame.  Here is the format for specifying the window
-geometry:
+  Here is a list of the command-line options for specifying size and
+position of the initial Emacs frame:
 
 @table @samp
 @item -g @var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
 @opindex -g
-Specify window size @var{width} and @var{height} (measured in character
-columns and lines), and positions @var{xoffset} and @var{yoffset}
-(measured in pixels).
-
-@item --geometry=@var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
+@itemx --geometry=@var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
 @opindex --geometry
-This is another way of writing the same thing.
+@cindex geometry, command-line argument
+Specify the size @var{width} and @var{height} (measured in character
+columns and lines), and positions @var{xoffset} and @var{yoffset}
+(measured in pixels).  This applies to all frames.
+
+@item -fs
+@opindex -fs
+@itemx --fullscreen
+@opindex --fullscreen
+@cindex fullscreen, command-line argument
+Specify that width and height shall be the size of the screen.
+
+@item -fh
+@opindex -fh
+@itemx --fullheight
+@opindex --fullheight
+@cindex fullheight, command-line argument
+Specify that the height shall be the height of the screen.
+
+@item -fw
+@opindex -fw
+@itemx --fullwidth
+@opindex --fullwidth
+@cindex fullwidth, command-line argument
+Specify that the width shall be the width of the screen.
 @end table
 
+
 @noindent
-@code{@r{@{}+-@r{@}}} means either a plus sign or a minus sign.  A plus
+In the @samp{--geometry} option, @code{@r{@{}+-@r{@}}} means either a plus
+ sign or a minus sign.  A plus
 sign before @var{xoffset} means it is the distance from the left side of
 the screen; a minus sign means it counts from the right side.  A plus
 sign before @var{yoffset} means it is the distance from the top of the
@@ -816,27 +1012,18 @@ screen, and a minus sign there indicates the distance from the bottom.
 The values @var{xoffset} and @var{yoffset} may themselves be positive or
 negative, but that doesn't change their meaning, only their direction.
 
-  Emacs uses the same units as @code{xterm} does to interpret the geometry.
+  Emacs uses the same units as @command{xterm} does to interpret the geometry.
 The @var{width} and @var{height} are measured in characters, so a large font
 creates a larger frame than a small font.  (If you specify a proportional
 font, Emacs uses its maximum bounds width as the width unit.)  The
 @var{xoffset} and @var{yoffset} are measured in pixels.
 
-  Since the mode line and the echo area occupy the last 2 lines of the
-frame, the height of the initial text window is 2 less than the height
-specified in your geometry.  In non-X-toolkit versions of Emacs, the
-menu bar also takes one line of the specified number.  But in the X
-toolkit version, the menu bar is additional and does not count against
-the specified height.  The tool bar, if present, is also additional.
-
   You do not have to specify all of the fields in the geometry
-specification.
-
-  If you omit both @var{xoffset} and @var{yoffset}, the window manager
-decides where to put the Emacs frame, possibly by letting you place
-it with the mouse.  For example, @samp{164x55} specifies a window 164
-columns wide, enough for two ordinary width windows side by side, and 55
-lines tall.
+specification.  If you omit both @var{xoffset} and @var{yoffset}, the
+window manager decides where to put the Emacs frame, possibly by
+letting you place it with the mouse.  For example, @samp{164x55}
+specifies a window 164 columns wide, enough for two ordinary width
+windows side by side, and 55 lines tall.
 
   The default width for Emacs is 80 characters and the default height is
 40 lines.  You can omit either the width or the height or both.  If
@@ -855,6 +1042,32 @@ which means both sizes are omitted.  Thus, @samp{-3} specifies the
 @file{.Xdefaults} file, and then override selected fields with a
 @samp{--geometry} option.
 
+  Since the mode line and the echo area occupy the last 2 lines of the
+frame, the height of the initial text window is 2 less than the height
+specified in your geometry.  In non-X-toolkit versions of Emacs, the
+menu bar also takes one line of the specified number.  But in the X
+toolkit version, the menu bar is additional and does not count against
+the specified height.  The tool bar, if present, is also additional.
+
+  Enabling or disabling the menu bar or tool bar alters the amount of
+space available for ordinary text.  Therefore, if Emacs starts up with
+a tool bar (which is the default), and handles the geometry
+specification assuming there is a tool bar, and then your
+@file{~/.emacs} file disables the tool bar, you will end up with a
+frame geometry different from what you asked for.  To get the intended
+size with no tool bar, use an X resource to specify ``no tool bar''
+(@pxref{Table of Resources}); then Emacs will already know there's no
+tool bar when it processes the specified geometry.
+
+  When using one of @samp{--fullscreen}, @samp{--fullwidth} or
+@samp{--fullheight} there may be some space around the frame
+anyway.  That is because Emacs rounds the sizes so they are an
+even number of character heights and widths.
+
+ Some window managers have options that can make them ignore both
+program-specified and user-specified positions (sawfish is one).
+If these are set, Emacs fails to position the window correctly.
+
 @node Borders X
 @appendixsec Internal and External Borders
 @cindex borders (X Window System)
@@ -871,13 +1084,15 @@ you can click on to move or iconify the window.
 @opindex -ib
 @itemx --internal-border=@var{width}
 @opindex --internal-border
-@cindex border width, command-line argument
-Specify @var{width} as the width of the internal border, in pixels.
+@cindex internal border width, command-line argument
+Specify @var{width} as the width of the internal border (between the text
+and the main border), in pixels.
 
 @item -bw @var{width}
 @opindex -bw
 @itemx --border-width=@var{width}
 @opindex --border-width
+@cindex main border width, command-line argument
 Specify @var{width} as the width of the main border, in pixels.
 @end table
 
@@ -905,16 +1120,15 @@ there is more than one frame).
 line option:
 
 @table @samp
-@item -title @var{title}
-@opindex --title
-@itemx --title=@var{title}
-@itemx -T @var{title}
+@item -T @var{title}
 @opindex -T
+@itemx --title=@var{title}
+@opindex --title
 @cindex frame title, command-line argument
 Specify @var{title} as the title for the initial Emacs frame.
 @end table
 
-  The @samp{--name} option (@pxref{Resources X}) also specifies the title
+  The @samp{--name} option (@pxref{Resources}) also specifies the title
 for the initial Emacs frame.
 
 @node Icons X
@@ -952,449 +1166,35 @@ rather than showing a frame right away.  In this situation, the icon
 is the only indication that Emacs has started; the text frame doesn't
 appear until you deiconify it.
 
-@node Resources X
-@appendixsec X Resources
-@cindex resources
-
-@cindex X resources, @file{~/.Xdefaults} file
-  Programs running under the X Window System organize their user options
-under a hierarchy of classes and resources.  You can specify default
-values for these options in your X resources file, usually named
-@file{~/.Xdefaults}.
-
-  Each line in the file specifies a value for one option or for a
-collection of related options, for one program or for several programs
-(optionally even for all programs).
-
-@cindex Registry (MS-Windows)
-@cindex @file{.Xdefaults} file, and MS-Windows
-  MS-Windows systems don't support @file{~/.Xdefaults} files, but
-Emacs compiled for Windows looks for X resources in the Windows
-Registry, under the keys @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}
-and @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}.
-
-  Programs define named resources with particular meanings.  They also
-define how to group resources into named classes.  For instance, in
-Emacs, the @samp{internalBorder} resource controls the width of the
-internal border, and the @samp{borderWidth} resource controls the width
-of the external border.  Both of these resources are part of the
-@samp{BorderWidth} class.  Case distinctions are significant in these
-names.
-
-  In @file{~/.Xdefaults}, you can specify a value for a single resource
-on one line, like this:
-
-@example
-emacs.borderWidth: 2
-@end example
-
-@noindent
-Or you can use a class name to specify the same value for all resources
-in that class.  Here's an example:
-
-@example
-emacs.BorderWidth: 2
-@end example
-
-  If you specify a value for a class, it becomes the default for all
-resources in that class.  You can specify values for individual
-resources as well; these override the class value, for those particular
-resources.  Thus, this example specifies 2 as the default width for all
-borders, but overrides this value with 4 for the external border:
-
-@example
-emacs.BorderWidth: 2
-emacs.borderWidth: 4
-@end example
-
-  The order in which the lines appear in the file does not matter.
-Also, command-line options always override the X resources file.
-
-  The string @samp{emacs} in the examples above is also a resource
-name.  It actually represents the name of the executable file that you
-invoke to run Emacs.  If Emacs is installed under a different name, it
-looks for resources under that name instead of @samp{emacs}.
+@node Misc X
+@appendixsec Other Display Options
 
 @table @samp
-@item -name @var{name}
-@opindex --name
-@itemx --name=@var{name}
-@cindex resource name, command-line argument
-Use @var{name} as the resource name (and the title) for the initial
-Emacs frame.  This option does not affect subsequent frames, but Lisp
-programs can specify frame names when they create frames.
-
-If you don't specify this option, the default is to use the Emacs
-executable's name as the resource name.
-
-@item -xrm @var{resource-values}
-@opindex --xrm
-@itemx --xrm=@var{resource-values}
-@cindex resource values, command-line argument
-Specify X resource values for this Emacs job (see below).
+@item -hb
+@opindex -hb
+@itemx --horizontal-scroll-bars
+@opindex --horizontal-scroll-bars
+@cindex horizontal scroll bars, command-line argument
+Enable horizontal scroll bars.
+
+@item -vb
+@opindex -vb
+@itemx --vertical-scroll-bars
+@opindex --vertical-scroll-bars
+@cindex vertical scroll bars, command-line argument
+Enable vertical scroll bars.
+
+@item -lsp @var{pixels}
+@opindex -lsp
+@itemx --line-spacing=@var{pixels}
+@opindex --line-spacing
+@cindex line spacing, command-line argument
+Specify @var{pixels} as additional space to put between lines, in pixels.
 @end table
 
-  For consistency, @samp{-name} also specifies the name to use for
-other resource values that do not belong to any particular frame.
-
-  The resources that name Emacs invocations also belong to a class; its
-name is @samp{Emacs}.  If you write @samp{Emacs} instead of
-@samp{emacs}, the resource applies to all frames in all Emacs jobs,
-regardless of frame titles and regardless of the name of the executable
-file.  Here is an example:
-
-@example
-Emacs.BorderWidth: 2
-Emacs.borderWidth: 4
-@end example
-
-  You can specify a string of additional resource values for Emacs to
-use with the command line option @samp{-xrm @var{resources}}.  The text
-@var{resources} should have the same format that you would use inside a file
-of X resources.  To include multiple resource specifications in
-@var{resources}, put a newline between them, just as you would in a file.
-You can also use @samp{#include "@var{filename}"} to include a file full
-of resource specifications.  Resource values specified with @samp{-xrm}
-take precedence over all other resource specifications.
-
-  The following table lists the resource names that designate options
-for Emacs, each with the class that it belongs to:
-
-@table @asis
-@item @code{background} (class @code{Background})
-Background color name.
-
-@item @code{bitmapIcon} (class @code{BitmapIcon})
-Use a bitmap icon (a picture of a gnu) if @samp{on}, let the window
-manager choose an icon if @samp{off}.
-
-@item @code{borderColor} (class @code{BorderColor})
-Color name for the external border.
-
-@item @code{borderWidth} (class @code{BorderWidth})
-Width in pixels of the external border.
-
-@item @code{cursorColor} (class @code{Foreground})
-Color name for text cursor (point).
-
-@item @code{font} (class @code{Font})
-Font name for text (or fontset name, @pxref{Fontsets}).
-
-@item @code{foreground} (class @code{Foreground})
-Color name for text.
-
-@item @code{geometry} (class @code{Geometry})
-Window size and position.  Be careful not to specify this resource as
-@samp{emacs*geometry}, because that may affect individual menus as well
-as the Emacs frame itself.
-
-If this resource specifies a position, that position applies only to the
-initial Emacs frame (or, in the case of a resource for a specific frame
-name, only that frame).  However, the size, if specified here, applies to
-all frames.
-
-@item @code{iconName} (class @code{Title})
-Name to display in the icon.
-
-@item @code{internalBorder} (class @code{BorderWidth})
-Width in pixels of the internal border.
-
-@item @code{lineSpacing} (class @code{LineSpacing})
-@cindex line spacing
-@cindex leading
-Additional space (@dfn{leading}) between lines, in pixels.
-
-@item @code{menuBar} (class @code{MenuBar})
-Give frames menu bars if @samp{on}; don't have menu bars if @samp{off}.
-
-@item @code{toolBar} (class @code{ToolBar})
-Number of lines to reserve for the tool bar.  A zero value suppresses
-the tool bar.  If the value is non-zero and
-@code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's size
-will be changed automatically so that all tool bar items are visible.
-
-@item @code{minibuffer} (class @code{Minibuffer})
-If @samp{none}, don't make a minibuffer in this frame.
-It will use a separate minibuffer frame instead.
-
-@item @code{paneFont} (class @code{Font})
-@cindex font for menus
-Font name for menu pane titles, in non-toolkit versions of Emacs.
-
-@item @code{pointerColor} (class @code{Foreground})
-Color of the mouse cursor.
+  The @samp{--xrm} option (@pxref{Resources}) specifies additional
+X resource values.
 
 @ignore
-@item @code{privateColormap} (class @code{PrivateColormap})
-If @samp{on}, use a private color map, in the case where the ``default
-visual'' of class PseudoColor and Emacs is using it.
+   arch-tag: fffecd9e-7329-4a51-a3cc-dd4a9889340e
 @end ignore
-
-@item @code{reverseVideo} (class @code{ReverseVideo})
-Switch foreground and background default colors if @samp{on}, use colors as
-specified if @samp{off}.
-
-@item @code{screenGamma} (class @code{ScreenGamma})
-@cindex gamma correction
-Gamma correction for colors, equivalent to the frame parameter
-@code{screen-gamma}.
-
-@item @code{selectionFont} (class @code{Font})
-Font name for pop-up menu items, in non-toolkit versions of Emacs.  (For
-toolkit versions, see @ref{Lucid Resources}, also see @ref{LessTif
-Resources}.)
-
-@item @code{synchronous} (class @code{Synchronous})
-@cindex debugging X problems
-@cindex synchronous X mode
-Run Emacs in synchronous mode if @samp{on}.  Synchronous mode is
-useful for debugging X problems.
-
-@item @code{title} (class @code{Title})
-Name to display in the title bar of the initial Emacs frame.
-
-@item @code{verticalScrollBars} (class @code{ScrollBars})
-Give frames scroll bars if @samp{on}; don't have scroll bars if
-@samp{off}.
-@end table
-
-  Here are resources for controlling the appearance of particular faces
-(@pxref{Faces}):
-
-@table @code
-@item @var{face}.attributeFont
-Font for face @var{face}.
-@item @var{face}.attributeForeground
-Foreground color for face @var{face}.
-@item @var{face}.attributeBackground
-Background color for face @var{face}.
-@item @var{face}.attributeUnderline
-Underline flag for face @var{face}.  Use @samp{on} or @samp{true} for
-yes.
-@item @var{face}.attributeFamily
-Font family for face @var{face}.
-@item @var{face}.attributeWidth
-Relative proportional width of the font to use for face @var{face}.
-It should be one of @code{ultra-condensed}, @code{extra-condensed},
-@code{condensed}, @code{semi-condensed}, @code{normal},
-@code{semi-expanded}, @code{expanded}, @code{extra-expanded}, or
-@code{ultra-expanded}.
-@item @var{face}.attributeHeight
-Height of the font to use for face @var{face}: either an integer
-specifying the height in units of 1/10@dmn{pt}, or a floating point
-number that specifies a scale factor to scale the underlying face's
-default font, or a function to be called with the default height which
-will return a new height.
-@item @var{face}.attributeWeight
-A weight to use for the face @var{face}.  It must be one of
-@code{ultra-bold}, @code{extra-bold}, @code{bold},
-@code{semi-bold}, @code{normal}, @code{semi-light}, @code{light},
-@code{extra-light}, @code{ultra-light}.
-@item @var{face}.attributeSlant
-The slant to use for the font of face @var{face}.  It must be one of
-@code{italic}, @code{oblique}, @code{normal},
-@code{reverse-italic}, or @code{reverse-oblique}.
-@item @var{face}.attributeStrikeThrough
-Whether the face @var{face} should be drawn with a line striking
-through the characters.
-@item @var{face}.attributeOverline
-Whether the characters in the face @var{face} should be overlined.
-@item @var{face}.attributeBox
-Whether to draw a box around the characters in face @var{face}.
-@item @var{face}.attributeInverse
-Whether to display the characters in face @var{face} in inverse
-video.
-@item @var{face}.attributeStipple
-The name of a pixmap data file to use for the stipple pattern, or
-@code{false} to not use stipple for the face @var{face}.
-@item @var{face}.attributeBackgroundPixmap
-The background pixmap for the face @var{face}.  Should be a name of a
-pixmap file or @code{false}.
-@item @var{face}.attributeBold
-Whether to draw the characters in the face @var{face} as bold.
-@item @var{face}.attributeItalic
-Whether to draw the characters in the face @var{face} as italic.
-@end table
-
-@node Lucid Resources
-@section Lucid Menu X Resources
-@cindex Menu X Resources (Lucid widgets)
-@cindex Lucid Widget X Resources
-
-  If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget and
-has its own resources.  The resource names contain @samp{pane.menubar}
-(following, as always, the name of the Emacs invocation, or @samp{Emacs},
-which stands for all Emacs invocations).  Specify them like this:
-
-@example
-Emacs.pane.menubar.@var{resource}:  @var{value}
-@end example
-
-@noindent
-For example, to specify the font @samp{8x16} for the menu-bar items,
-write this:
-
-@example
-Emacs.pane.menubar.font:  8x16
-@end example
-
-@noindent
-Resources for @emph{non-menubar} toolkit pop-up menus have
-@samp{menu*}, in like fashion.  For example, to specify the font
-@samp{8x16} for the pop-up menu items, write this:
-
-@example
-Emacs.menu*.font:      8x16
-@end example
-
-@noindent
-For dialog boxes, use @samp{dialog} instead of @samp{menu}:
-
-@example
-Emacs.dialog*.font:    8x16
-@end example
-
-@noindent
-Experience shows that on some systems you may need to add
-@samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}.  On
-some other systems, you must not add @samp{shell.}.
-
-  Here is a list of the specific resources for menu bars and pop-up menus:
-
-@table @code
-@item font
-Font for menu item text.
-@item foreground
-Color of the foreground.
-@item background
-Color of the background.
-@item buttonForeground
-In the menu bar, the color of the foreground for a selected item.
-@item horizontalSpacing
-Horizontal spacing in pixels between items.  Default is 3.
-@item verticalSpacing
-Vertical spacing in pixels between items.  Default is 1.
-@item arrowSpacing
-Horizontal spacing between the arrow (which indicates a submenu) and
-the associated text.  Default is 10.
-@item shadowThickness
-Thickness of shadow line around the widget.
-@item margin
-The margin of the menu bar, in characters.  The default of 4 makes the
-menu bar appear like the LessTif/Motif one.
-@end table
-
-@node LessTif Resources
-@section LessTif Menu X Resources
-@cindex Menu X Resources (LessTif widgets)
-@cindex LessTif Widget X Resources
-
-  If the Emacs installed at your site was built to use the X toolkit
-with the LessTif or Motif widgets, then the menu bar is a separate
-widget and has its own resources.  The resource names contain
-@samp{pane.menubar} (following, as always, the name of the Emacs
-invocation, or @samp{Emacs}, which stands for all Emacs invocations).
-Specify them like this:
-
-@smallexample
-Emacs.pane.menubar.@var{subwidget}.@var{resource}:  @var{value}
-@end smallexample
-
-  Each individual string in the menu bar is a subwidget; the subwidget's
-name is the same as the menu item string.  For example, the word
-@samp{File} in the menu bar is part of a subwidget named
-@samp{emacs.pane.menubar.File}.  Most likely, you want to specify the
-same resources for the whole menu bar.  To do this, use @samp{*} instead
-of a specific subwidget name.  For example, to specify the font
-@samp{8x16} for the menu-bar items, write this:
-
-@smallexample
-Emacs.pane.menubar.*.fontList:  8x16
-@end smallexample
-
-@noindent
-This also specifies the resource value for submenus.
-
-  Each item in a submenu in the menu bar also has its own name for X
-resources; for example, the @samp{File} submenu has an item named
-@samp{Save (current buffer)}.  A resource specification for a submenu
-item looks like this:
-
-@smallexample
-Emacs.pane.menubar.popup_*.@var{menu}.@var{item}.@var{resource}: @var{value}
-@end smallexample
-
-@noindent
-For example, here's how to specify the font for the @samp{Save (current
-buffer)} item:
-
-@smallexample
-Emacs.pane.menubar.popup_*.File.Save (current buffer).fontList: 8x16
-@end smallexample
-
-@noindent
-For an item in a second-level submenu, such as @samp{Complete Word}
-under @samp{Spell Checking} under @samp{Tools}, the resource fits this
-template:
-
-@smallexample
-Emacs.pane.menubar.popup_*.popup_*.@var{menu}.@var{resource}: @var{value}
-@end smallexample
-
-@noindent
-For example,
-
-@smallexample
-Emacs.pane.menubar.popup_*.popup_*.Spell Checking.Complete Word: @var{value}
-@end smallexample
-
-@noindent
-(This should be one long line.)
-  
-  It's impossible to specify a resource for all the menu-bar items
-without also specifying it for the submenus as well.  So if you want the
-submenu items to look different from the menu bar itself, you must ask
-for that in two steps.  First, specify the resource for all of them;
-then, override the value for submenus alone.  Here is an example:
-
-@smallexample
-Emacs.pane.menubar.*.fontList:  8x16
-Emacs.pane.menubar.popup_*.fontList: 8x16
-@end smallexample
-
-@noindent
-For toolkit pop-up menus, use @samp{menu*} instead of
-@samp{pane.menubar}.  For example, to specify the font @samp{8x16} for
-the pop-up menu items, write this:
-
-@smallexample
-Emacs.menu*.fontList:  8x16
-@end smallexample
-
-@iftex
-@medbreak
-@end iftex
-  Here is a list of the specific resources for menu bars and pop-up menus:
-
-@table @code
-@item armColor
-The color to show in an armed button.
-@item fontList
-The font to use.
-@item marginBottom
-@itemx marginHeight
-@itemx marginLeft
-@itemx marginRight
-@itemx marginTop
-@itemx marginWidth
-Amount of space to leave around the item, within the border.
-@item borderWidth
-The width of the border around the menu item, on all sides.
-@item shadowThickness
-The width of the border shadow.
-@item bottomShadowColor
-The color for the border shadow, on the bottom and the right.
-@item topShadowColor
-The color for the border shadow, on the top and the left.
-@end table