Example Configurations

This section has some example configurations that are useful for various setups.

Terminal Lab With One Server

Suppose you want to make a lab full of X terminals that all connect to one main server. So let's call one X terminal xterminal and lets call the server appserver. You install GDM on both.

On appserver you enable XDMCP, so you have


[xdmcp]
Enable=true
        
If you want no local screens here, you can then make the [servers] section empty.

On the xterminal you disable XDMCP (you don't want anyone to connect to the xterminal really). You will add a server type perhaps called Terminal as follows:


[server-Terminal]
name=Terminal server
command=/usr/X11R6/bin/X -terminate
flexible=false
handled=false
        
This definition should in fact be included in the standard configuration file. Notice that we made the handled key false since we don't want GDM to handle this server localy. Also note that we have not yet added the -query argument, you can add that here, or in the [servers] section. We'll define our local servers as follows:

[servers]
0=Terminal -query appserver
        
This will run a direct XDMCP query to the server named appserver.

Terminal Lab With Two Or More Servers

Suppose you want to make a lab full of X terminals that all connect to some choice of servers. For now let's make it appserverone and appservertwo. Again we'll call our example X terminal machine xterminal. The setup on both servers is the same as with the case of one server in the previous section. You do not need to explicitly enable indirect queries on the server since we'll run the choosers locally on the X terminals.

So on the xterminal you again disable XDMCP. You will add a server type perhaps called Chooser as follows:


[server-Chooser]
name=Chooser server
command=/usr/X11R6/bin/X
flexible=false
chooser=true
        
And again this definition should in fact be included in the standard configuration file. Notice that we made the chooser key true here. This will run the XDMCP chooser for this server, and when the user chooses a host GDM will run a query for that host. Then we'll define our local servers as follows:

[servers]
0=Chooser
        

The XDMCP chooser on the X terminal will normally give a broadcast query to see which servers exist on the network. If the two servers are not reachable by a broadcast query, you must add them by hand to the configuration file. So in the [chooser] section you would have:

Hosts=appserverone,appservertwo
and any other servers you wish the users to be able to connect to.

Sometimes you may want to run the chooser on the server side however. Then what you want to do is to run a configuration similar to the previous section about the one server configuration with XDMCP indirect queries enabled on appserver and on the X terminals you'd have


[servers]
0=Terminal -indirect appserver
        
This way for example you only have to maintain one Hosts entry. However as a disadvantage then, the appserver must then always be available. So it's not good for situations where you want to have serveral servers and not all of them have to be on all the time. You could also have one of the X terminals handle indirect XDMCP queries and serve up the chooser to the other X terminals.