Thursday, 28 May 2015

Adding fonts to OpenNX

One of my users needed to use NX (version 3) due to working over a lower bandwidth connection. I followed the instructions to install a FreeNX server on CentOS. The user followed the instructions to install an OpenNX client on Windows.

Unfortunately many glyphs came out as squares in CAD applications. After some research, I arrived at these conclusions:

  1. NX version 3 uses client side fonts. It is also possible to use an X font server, but that partly defeats the purpose of NX since the fonts will have to be served over the connection. The reason OpenNX couldn't render all glyphs is because it is distributed with only a basic set of fonts.
  2. NX version 4 doesn't require client side fonts. Unfortunately it is not free software.
Looking into OpenNX, I saw that it uses Xming underneath, with a font directory. Well, what if I installed more fonts there?

I fetched the Xming-fonts installer package from Sourceforge and ran it, selecting the dejavu fonts as well.

I renamed the misc and TTF font directories under OpenNX (typically C:\Program Files\OpenNX\share\Xming\fonts), then copied the misc, TTF and dejavu font directories from Xming (typically C:\Program Files\Xming\fonts) into the OpenNX directory.

I edited (as administrator) the font-dirs file in the Xming root directory under OpenNX to add the paths of the extra font directories for TTF and dejavu.

I started a NX session, opened a terminal window and ran xlsfonts, and voila, I had a much larger set of fonts. The CAD applications ran without missing fonts.

PS: A caveat, when you paste the client DSA key from the server into OpenNX, make sure you end it with a newline or the key cannot be parsed.