I am using Mac OS X 10.8 and XQuartz 2.7.2. I have downloaded and placed several TrueType fonts named *.ttf in my /Users/<name>/.fonts directory. Upon running XQuartz several files including fonts.dir are created. This file has X11 font names of various encodings, etc. for each font I've installed.
My trouble is that I can't always "figure out" the correct name to use in xterm -fa <NAME> or in my .Xresources XTerm*faceName entry. For some fonts the core font name as listed in the detailed X11 font name in the fonts.dir file works whereas for others it doesn't.
4 Answers
The following one-liner has often helped me a lot to find the correct font name:
$ fc-list | cut -f2 -d: | sort -uEspecially with Japanese fonts like 'IPAX0208Mincho', I would never have been able to guess the correct name. If you don't mind a little more typing effort, you might even prefer
$ fc-list | cut -f2 -d: | sort -u | less -rto get a paged output.
You can use xfontsel to get the right name:
$ xfontselChose the font you are interested in and then click on the "Select" button. That will copy the font name to the clipboard. Use that name to run xterm. E.g.:
$ xterm -font -adobe-helvetica-*-r-normal-*-12-120-*-*-*-*-*-*Can't get it to work on my system (linux) using "-fa" but "-font" works.
4If you use FontBook to load the font, it will display the correct name to use with xterm -fa.
What's missing are entries in the fonts.alias file:
/usr/share/X11/fonts/75dpi/fonts.aliasWhat this file does is provide short names ("aliases") for X Window fonts that are installed. When you try to use a short name that isn't in the file, you get behavior like this when starting xterm:
lansdale:~> xterm -xrm \*font:courr12
xterm: cannot load font "courr12"(The xterm does come up and runs with a default, different font)
The fonts.alias file exists because of the long length of X11 font names. For example, courr12 is the short name for:
-adobe-courier-medium-r-normal--12-120-75-75-m-70-iso10646-1[The long names are actually 14 different editable fields stitched together with dashes/hyphens. Run program xfontsel to see them; it will start with all fields showing with an asterisk, meaning not set to something specific.]
Each line in the file begins with a short name (an alias), a blank, then the long name it points/refers to. This way, you don't have to use the long name all the time, just set up an alias and use that. When putting a new line in the file, you decide what the short name will be, only the full X11 name has to have a font file installed on the system.
When I first cut my teeth on Unix systems in the 1990s, I ran across courr12 and later came to desire font it (Courier 'Roman' size 12) for my xterms. On HP/UX and Solaris, the fonts.alias file already had courr12, so I could just put "XTerm*font: courr12" in my .Xdefaults file and everything would work fine.