XDM-Choose -- A replacement chooser for XDM

[ about | download | local-use ]

Latest is xdmchoose-1.2.1

About XDM-Choose

This program is a highly configurable replacement chooser for XDM, which allows the user to type in a hostname and query/connect to it. This is useful when the target X server cannot be reached by a broadcast packet (as per standard chooser).

A small utility, xdmping, is included, and is a simple command-line program which tests a host's willingness to accept an XDM session. (quite useful in scripts, etc.).

Here are some screenshots of it:

screenshot of xdmchoose (initial) screenshot of xdmchoose (after query)
regularafter query (and showing host-list)

Three background images are provided (the above is the "blur" variant), but generating your own is pretty simple (make your image -- same size as existing ones; save as xpm; edit config file). When Ctrl-C is pressed on the chooser (which grabs the keyboard incidently), it exits with a configurable exit-code (this is needed to make it work under Solaris properly). Pressing return after typing a hostname/IP will attempt a connection to that host. Pressing ESCape will query the host.

Version 1.1.1:

Version 1.1.2:

Version 1.1.3:

Version 1.2.0:

Version 1.2.1:

Download it!

Local Installation

This bit describes how to setup XDM-choose locally (if you wish to do that!). This is something I tend to do on my workstations; it looks prettier and lets me login to other boxes. This is separate from setting up XDM to launch xdm-choose for chooser requests (that is described in the README file).

On most Linux installations, XDM is responsible for starting the X server which it then manages (producing the XDM username/password login screen). To be used with xdm-choose, the X server must be started unmanaged (and told to perform an indirect XDMCP query to get the chooser -- xdm-choose if configured right!).

XDM keeps the list of managed servers in its Xservers file. The actual path to this file is inside the `xdm-config' file, that you will find somewhere in `/etc/' (in `/etc/X11/xdm/' on my Debian system). The entry for the servers file will look something like:

    DisplayManager.servers:         /usr/X11R6/lib/X11/xdm/Xservers

That file contains a list of local servers to start and manage, and remote terminals to just manage (e.g. XDMCP-less X terminals). A typically entry for starting the local server on a Linux system is:

    :0 local /usr/X11R6/bin/X  -dpi 100

To stop XDM starting the X server this way, just comment that line out (with a leading `#').

Now, when XDM starts, it won't start the X server and manage it. Instead, the X server has to be started another way. I've hacked up an init.d script to do this, downloadable here. To use it, copy the file into your `init.d' directory (typically `/etc/init.d/' or `/etc/rc.d/init.d/'), rename to something sensible (e.g. `xserver'), make executable (`chmod +x xserver'), and then update the rc.d symbolic links. On debian systems use `update-rc.d' to do this, with something like:

    bash# update-rc.d xserver defaults 99

On other distributions, use whatever tool you have to, or do it manually. Note that this init.d script may not be robust and is intended for Debian systems. It may require a bit of hacking to get it working on other systems.

Last modified: Sun Aug 29 23:19:55 2004 by Fred Barnes.