The X Display Manager (XDM) is an optional part of the X Window System that is used for login session management. This is useful for several types of situations, including minimal “X Terminals”, desktops, and large network display servers. Since the X Window System is network and protocol independent, there are a wide variety of possible configurations for running X clients and servers on different machines connected by a network. XDM provides a graphical interface for choosing which display server to connect to, and entering authorization information such as a login and password combination.
Think of XDM as providing the same functionality to the user as the getty(8) utility (see Section 26.3.2, “Configuration” for details). That is, it performs system logins to the display being connected to and then runs a session manager on behalf of the user (usually an X window manager). XDM then waits for this program to exit, signaling that the user is done and should be logged out of the display. At this point, XDM can display the login and display chooser screens for the next user to login.
To start using XDM, install
the x11/xdm
port (it is
not installed by default in recent versions of
Xorg). The
XDM daemon program may then be
found in /usr/local/bin/xdm
. This
program can be run at any time as root
and it will start managing the X display on the local machine.
If XDM is to be run every time the
machine boots up, a convenient way to do this is by adding an
entry to /etc/ttys
. For more information
about the format and usage of this file, see
Section 26.3.2.1, “Adding an Entry to
/etc/ttys
”. There is a line in the
default /etc/ttys
file for running the
XDM daemon on a virtual
terminal:
By default this entry is disabled; in order to enable it
change field 5 from off
to
on
and restart init(8) using the
directions in Section 26.3.2.2, “Force init
to Reread
/etc/ttys
”. The first field,
the name of the terminal this program will manage, is
ttyv8
. This means that
XDM will start running on the 9th
virtual terminal.
The XDM configuration directory
is located in /usr/local/lib/X11/xdm
. In
this directory there are several files used to change the
behavior and appearance of XDM.
Typically these files will be found:
File | Description |
---|---|
Xaccess | Client authorization ruleset. |
Xresources | Default X resource values. |
Xservers | List of remote and local displays to manage. |
Xsession | Default session script for logins. |
Xsetup_ * | Script to launch applications before the login interface. |
xdm-config | Global configuration for all displays running on this machine. |
xdm-errors | Errors generated by the server program. |
xdm-pid | The process ID of the currently running XDM. |
Also in this directory are a few scripts and programs used to set up the desktop when XDM is running. The purpose of each of these files will be briefly described. The exact syntax and usage of all of these files is described in xdm(1).
The default configuration is a simple rectangular login window with the hostname of the machine displayed at the top in a large font and “Login:” and “Password:” prompts below. This is a good starting point for changing the look and feel of XDM screens.
The protocol for connecting to
XDM-controlled displays is
called the X Display Manager Connection Protocol (XDMCP).
This file is a ruleset for controlling XDMCP connections
from remote machines. It is ignored unless the
xdm-config
is changed to listen for
remote connections. By default, it does not allow any
clients to connect.
This is an application-defaults file for the display chooser and login screens. In it, the appearance of the login program can be modified. The format is identical to the app-defaults file described in the X11 documentation.
This is the default session script for
XDM to run after a user has
logged in. Normally each user will have a customized
session script in ~/.xsession
that
overrides this script.
These will be run automatically before displaying the
chooser or login interfaces. There is a script for each
display being used, named Xsetup_
followed by the local display number (for instance
Xsetup_0
). Typically these scripts
will run one or two programs in the background such as
xconsole
.
This contains settings in the form of app-defaults that are applicable to every display that this installation manages.
In order for other clients to connect to the display
server, you must edit the access control rules and enable
the connection listener. By default these are set to
conservative values. To make XDM
listen for connections, first comment out a line in the
xdm-config
file:
and then restart XDM.
Remember that comments in app-defaults files begin with a
“!” character, not the usual “#”.
More strict access controls may be desired — look at the
example entries in Xaccess
, and refer to
the xdm(1) manual page for further information.
Several replacements for the default XDM program exist. One of them, KDM (bundled with KDE) is described later in this chapter. The KDM display manager offers many visual improvements and cosmetic frills, as well as the functionality to allow users to choose their window manager of choice at login time.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.