XDM

Related articles

From XDM manual page:

Xdm manages a collection of X displays, which may be on the local host or remote servers. The design of xdm was guided by the needs of X terminals as well as The Open Group standard XDMCP, the X Display Manager Control Protocol. Xdm provides services similar to those provided by init, getty and login on character terminals: prompting for login name and password, authenticating the user, and running a "session."

XDM provides a simple and straightforward graphical login prompt.

Installation

Install xorg-xdm, available in the official repositories, then enable the xdm systemd service.

If you would like to use an Arch Linux theme for XDM, you can optionally install the xdm-archlinux package, also available in the official repositories. If installing the latter package, then do not enable the xdm service, but instead enable the xdm-archlinux service.

Configuration

Defining the session

Unlike many more modern display managers such as GDM or LightDM, XDM does not source available sessions from .desktop files located in the /usr/share/xsessions directory. As such, XDM does not have a 'session menu.' Instead, XDM will source the .xsession file in the home directory (if this does not exist it will source the .xsession file in /etc/skel.) The .xsession file will normally direct XDM to the .xinitrc file where sessions and startup commands can be defined however the .xsession file can be used to define sessions directly.

If you wish to define sessions using the .xinitrc file, execute the following command to copy the default .xsession and .xinitrc files to your home directory:

$ cp /etc/skel/.xsession /etc/skel/.xinitrc ~

Ensure that the .xinitrc and .xsession files in your home directory are executable. Then edit the .xinitrc file to define your session as appropriate, e.g. exec gnome-session. See the xinitrc article for more information.

If you would prefer to define your session in the .xsession file itself, simply create the file and define the session as appropriate (the syntax is the same as in the .xinitrc file.)

Then make the file executable by running the following command:

$ chmod 744 ~/.xsession

Theming

For the exact meanings of the options discussed below, see the manual page of xdm.

Tip: To ensure that your configuration does not get overwritten, edit the /etc/pacman.conf file as shown: NoUpgrade = etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xresources

Background wallpaper

You can use a program such as qiv to set the background in XDM:

  • Make a directory to store background images, e.g. /root/backgrounds or /usr/local/share/backgrounds
  • Place your images in the directory. If you do not have any try [1] for starters
  • Edit /etc/X11/xdm/Xsetup_0. Change the xconsole command to:
 /usr/bin/qiv -zr /root/backgrounds/*

Font

  • Edit /etc/X11/xdm/Xresources. Add/replace the following defines:
 xlogingreetFont:  -adobe-helvetica-bold-o-normal--20------iso8859-1
 xloginfont:       -adobe-helvetica-medium-r-normal--14------iso8859-1
 xloginpromptFont: -adobe-helvetica-bold-r-normal--14------iso8859-1
 xloginfailFont:   -adobe-helvetica-bold-r-normal--14------iso8859-1

Login dialog positioning

This configuration will move the login dialog to the bottom right of the screen.

 xlogin*frameWidth: 1
 xlogin*innerFramesWidth: 1
 xlogin*logoPadding: 0
 xlogin*geometry:    300x175-0-0

Comment out the logo defines:

 #xlogin*logoFileName: /usr/X11R6/lib/X11/xdm/pixmaps/xorg.xpm
 #xlogin*logoFileName: /usr/X11R6/lib/X11/xdm/pixmaps/xorg-bw.xpm

Multiple X sessions & Login in the window

With the Xdmcp enable, you can easily run multiple X sessions simultaneously on the same machine.

# X -query ip_xdmcp_serverĀ :2

This will launch the second session, in window you need xorg-server-xephyr

# Xephyr -query this_machine_ipĀ :2