### 1.8 tkconnect

    tkconnect &key host display can-rsh gcltksrv

This function provides a connection to a graphics server process, which in turn connects to possibly several graphics display screens. The graphics server process, called `gcltksrv` may or may not run on the same machine as the lisp to which it is attached. `display` indicates the name of the default display to connect to, and this in turn defaults to the value of the environment variable `DISPLAY`.

When tkconnect is invoked, a socket is opened and it waits for a graphics process to connect to it. If the host argument is not supplied, then a process will be spawned which will connect back to the lisp process. The name of the command for invoking the process is the value of the `gcltksrv` argument, which defaults to the value of the environment variable `GCL_TK_SERVER`. If that variable is not set, then the lisp `*lib-directory*` is searched for an entry `gcl-tk/gcltksrv`.

If `host` is supplied, then a command to run on the remote machine will be printed on standard output. If `can-rsh` is not nil, then the command will not be printed, but rather an attempt will be made to rsh to the machine, and to run the command.

Thus

    (tkconnect)

would start the process on the local machine, and use for `display` the value of the environment variable `DISPLAY`.

    (tkconnect :host "max.ma.utexas.edu" :can-rsh t)

would cause an attempt to rsh to `max` and to run the command there, to connect back to the appropriate port on the localhost.

You may indicate that different toplevel windows be on different displays, by using the `:display` argument when creating the window, See toplevel.

Clearly you must have a copy of the program `gcltksrv` and TK libraries installed on the machine where you wish to run the server.