# X and `term`

`term` allows users to open up X windows on the local machine from clients that are running on a machine on the network. This is done by using the `txconn` client. `txconn` is executed on the remote, network-connected machine, it is invoked simply as `txconn.` It goes into the background and returns a number on the standard output, this number is the display number that clients should use to access the X server on the local machine. An example should make this clear. I am logged in, via `trsh,` to my remote `term` host, named `foo.` On `foo,` I do the following

    foo$ txconn
    Xconn bound to screen 10
    :10
    foo$

Now, on any host that I wish to run an X client, that is to display on my local machine's X server, I do `setenv DISPLAY foo:10`. Now when I start the client, it will try to connect to screen 10 on machine `foo,` but `txconn` is listening to this screen, and will forward all X protocol packets via `term` to the X server on the local host - i.e. the window will open up on your local machine.

It is possible to go the other way - run a client on your local machine and have it open up a window on a remote machine on the network, however we will defer explaining this until after we have discussed `tredir.`

`txconn` is not terribly secure, anyone can connect to your local server via `term` and perform all sorts of mischief. If you're worried about this sort of thing, it might be a good idea to consider using `xauth` to authorize your connections. Consult the `xauth` man page.

The X protocol is not very efficient, it wastes some bandwidth. This is usually not a problem over an ethernet, but can be murder over a modem. X11R6 is supposed to introduce a low bandwidth version of the X protocol, LBX. However, this is not of much use, since R6 has not been released at the time of this writing. There is a utility named `sxpc` which compresses the X protocol, improving response over serial lines. `sxpc` includes a writeup on how to get it working with `term,` and is recommended. You can get `sxpc` from `ftp.x.org` in `/contrib.` The `sxpc` package also explains how to use `xauth,` so it is doubly recommended.