This section will cover the configuration of GDM and the format of the
configuration file.  However you can use the
gdmsetup command to configure GDM from a graphical
environment.  The configuration application does not let you configure every
aspect of GDM, so if the configuration application does not cover your needs
you may find information in this section.
The configuration files (especially the gdm.conf
file) contain lots of useful comments and examples, so also read this
for more information about changing your setup.
Some keys in the configuration file as shipped are commented out while
others are set.  This is done so that defaults can be easily changed in
the future for some keys.  If you wish to set such a key you must first
remove the leading hash mark that marks it as a comment.
The gdm.conf file contains the main configuration
choices for GDM.
GDM may be configured to support both system-wide configuration if
built with the --with-configdir option.  This
allows the gdm.conf file to be installed to a directory that can
be mounted across multiple-systems.  Regardless of whether this
option is used, GDM will first look for the gdm.conf file in the
<etc>/gdm directory.  This way
machine-specific configuration always overrides the system-wide
defaults.  The gdm --config option may also be used to specify the
configuration file location.  All GDM utilities (such as
gdmchooser, gdmsetup, etc.) query the GDM daemon process and will use
the same configuration file as being used by the daemon.  The GDM2
daemon must be restarted to change the configuration file being used.
GDM 2.8.0.1 and earlier only supported machine-specific configuration.
factory-gdm.conf is the configuration file as
shipped with the daemon.  This can be useful if you wish to revert to
the default configuration.
The other GDM configuration files are located, by default, in the
<etc>/gdm/ folder or its subdirectories.
However, the location of all configuration files can be defined in
the gdm.conf file, so the sysadmin may choose
to locate these files in any location.
This is a listing of the config directory contents:
Init/
PostLogin/
PostSession/
PreSession/
modules/
locale.alias
Xsession
XKeepsCrashing
locale.alias is a file which looks much like the
system locale alias but in fact it is not the same.  These are the
languages that are available on your system.  All the languages are
still tested to see if they actually exist before presenting them to the
user.
The Init, PreSession,
PostSession, and PostLogin
scripts are described later in this section.
Xsession is a script which sets up a user session
and then executes the users choice of session.
XKeepsCrashing is a script which gets run when the
X server keeps crashing and we cannot recover.  The shipped default
script will work with most Linux distributions and can run the X
configuration application provided the person on the console knows the root
password.
gdm.conf configuration settings are used by most
GDM applications since a number of configuration settings are used by
each program.
Accessibility modules are configured in the modules/
subdirectory, and are a separate topic.  Read the default files provided,
they have adequate documentation.  Again normally the default install
is given in the files with factory in their name,
and those files are not read, they are just there for you so you can
always revert to default config.
Files describing available GDM session follow the freedesktop.org
desktop file specification and are .desktop-style
files are installed to <etc>/X11/sessions/.
This directory is also read by the KDE desktop manager (KDM) for common
configuration.  Next the directory
<share>/gdm/BuiltInSessions/ is read for
GDM specific built-in sessions (KDM hardcodes these at time of
this writing).  Lastly the default setup will also read
<share>/xsessions/ (which should be
/usr/share/xsessions/ if you really wish to
cooperate with KDM) where desktop packages can install their session
files.  The directories under the <etc> should
be reserved for configuration.  The desktop file specification approach
makes it easy for package management systems to install window managers
and different session types without requiring the sysadmin to edit files.
See the SessionDesktopDir configuration key for
changing the paths.  It used to be that GDM stored its built in
sessions in <etc>/dm/Sessions/ but this is
deprecated as of 2.5.90.0.  Note that prior to version 2.4.4.2 only the
<etc>/dm/Sessions/ was being read.
A session can be disabled (if it was installed in
/usr/share/xsessions/) by adding an identically
named .desktop to one of the directories earlier in
the path (likely <etc>/X11/sessions) and using
Hidden=true in that file.
