[X terminal (.4K gif)] Russian fonts on an X terminal

First for the impatient:

Quick instructions

  1. Create one or several directories with Russian fonts.
  2. Create a configuration file .fsconfig containing
    client-limit = 10
    clone-self = on
    catalogue = /your/first/directory/with/russian/fonts,
                /your/second/directory/with/russian/fonts,
                /your/last/directory/with/russian/fonts
    
  3. Start the font server
    % xfs -config .fsconfig -port 7171 &
    
  4. Instruct the X terminal to use the font server
    % xset fp+ tcp/your.host.name:7171
    
  5. Enjoy your favorite Russian site.
If it works for you, congratulations! If it doesn't, sorry, I'll have to bore you with some technical details.

How this magic works

An X terminal is a diskless computer running a truncated variant of UN*X capable of supporting an X server and networking. Optionally, an X terminal may provide a shell and some X clients (usually a window manager and a bunch of screen accessories like xclock, etc.).

When you are working on a console, you can add new fonts just by adding the fontpaths with xset fp+ command. For an X terminal this is not possible becase it doesn't have a disk where you can put the fonts. An X terminal receives a standard set of fonts from a server ate the boot time and stores them in it's memory. You cannot add new fonts to the standard set unless you have administrative permissions on your site.

X window system provides an alternative to loading fonts from a local disk---the X font server, xfs. Xfs runs on a workstation and does a very simple job: it reads fonts from the disk and sends them to an X server running on an X terminal. The client-server terminology becomes confusing in this context: X server is a client of xfs!

It is a good option to use the fonts server(s) for all fonts except a handful of "emergency" fonts. This way you will save the memory on X terminal by not keeping unused fonts in RAM.

Now we can start explaning the magic.

% xfs -config .fsconfig -port 7171 &
tells your workstation to start xfs in the background which will use the configuration file .fsconfig and listen on the port 7171. We suggest 7171 as a variant of the default (RFC 1700) port 7100 (the later is likely to be in use already, or you may upset your sysadm by using it), but you can use any other available port.
% xset fp+ tcp/your.host.name:7171
tells the X server (which runs on the X terminal) to add your font server to the list of font sources. your.host.name is the internet address the workstation running xfs. Sometimes an X terminal cannot do the name translation correctly, try the numeric address in dot notation instead (e.g. 18.159.0.42 instead of prep.ai.mit.edu). You can find the numeric address by typing nslookup your.host.name.

Troubleshooting

The first thing is to locate the trouble. Since it is most likely that the trouble is on the end of X terminal you should find the way to see the diagnostic messages. Most X terminals provide a way to open a console window either from an icon or using a hot key. Another option is to telnet or rlogin to the X terminal (yes, in most cases you can do this and it won't even ask you for a password!). You can find the name of your terminal by examining the DISPLAY environmennt variable.

Test xfs and xset separately. To test xfs, login to the workstation from the console and try to use the fontserver. To test xset, use xset q and try to run xset from the terminal's console or from telenet/rlogin session.

Customization

You probably don't want to repeat xfs and xset comands every time you login from an X terminal. Most likely you wont need to restart xfs since it will run until you (or your sysadm) kill it. If you do keep xfs running between your login, don't forget to tell all your netwise local friends that they can use it. You can put xset command in your .xsession file (if you run xdm), but don't put it in .login or you'll get an error every time you telnet or dial in to your system.
© 1996 by Alexander Belopolsky <belopols@physics.unc.edu>

Last modified: Wed Feb 5 09:04:27 EST 1997