fontsrv – file system access to host fonts

fontsrv [ −m mtpt ] [ −s srvname ]
fontsrv −p path

Fontsrv presents the host window system’s fonts in the standard Plan 9 format (see font(7)). It serves a virtual directory tree mounted at mtpt (if the −m option is given) and posted at srvname (default font).
The −p option changes fontsrv’s behavior: rather than serve a file system, fontsrv prints to standard output the contents of the named path. If path names a directory in the served file system, fontsrv lists the directory’s contents.
The fonts are arranged in a two-level tree. The root contains directories named for each system font. Each font directory contains subdirectories named for a point size and whether the subfonts are anti-aliased: 10 (bitmap) 10a (anti-aliased greyscale) 12, 12a, and so on. The font directory will synthesize additional sizes on demand: looking up 19a will synthesize the 19-point anti-aliased size if possible. Each size directory contains a font file and subfont files named x0000.bit, x0100.bit, and so on representing 256-character Unicode ranges.
Openfont (see graphics(3)) recognizes font paths beginning with /mnt/font and implements them by invoking fontsrv; it need not be running already.

List the fonts on the system:
% fontsrv &
% 9p ls font
% fontsrv −p .
Run acme(1) using the operating system’s Monaco as the fixed-width font:
% acme −F /mnt/font/Monaco/13a/font
Run sam(1) using the same font:
% font=/mnt/font/Monaco/13a/font sam



Due to OS X restrictions, fontsrv does not fork itself into the background when serving a user-level file system.
Fontsrv has no support for X11 fonts; on X11 systems, it will serve an empty top-level directory.
On OS X, the anti-aliased bitmaps are not perfect. For example, the lower case r in the subfont Times−Roman/14a/x0000.bit appears truncated on the right and too light overall.

Space Glenda