FONTSRV(4)
π FONTSRV(4) β host fonts, but make it file-system cute π
okay so bestie, this is the FONTSRV(4) page from the Kernel Interfaces Manual, and itβs literally about fontsrv: file system access to host fonts. No cap, itβs giving βyour host window systemβs fonts, but served in the standard Plan 9 formatβ energy, and weβre gonna go through every tiny detail. π«Ά
π NAME π
fontsrv - file system access to host fonts π
πΈ SYNOPSIS πΈ
fontsrv [ -m mtpt ] [ -s srvname ]
fontsrv -p path
π¦ DESCRIPTION π¦
Fontsrv presents the host window systemβs fonts in the standard Plan 9 format β yes, see font(7), bestie. It serves a virtual directory tree mounted at mtpt (only if you give the -m option) and posted at srvname (default: font). Slay.
The -p option changes fontsrvβs behavior: instead of serving 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. Cute, right? π
π the option vibe check π
-mmtptβ serves the virtual directory tree mounted atmtptwhen this option is given.-ssrvnameβ posts the tree atsrvname; the default isfont.-ppathβ changesfontsrvβs behavior: instead of serving a file system, it prints to standard output the contents of the namedpath; ifpathnames a directory in the served file system, it 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, x0020.bit, and so on representing 32-character Unicode ranges. Obsessed with the structure tbh. π¦
Openfont (see graphics(3)) recognizes font paths beginning with /mnt/font and implements them by invoking fontsrv; it need not be running already. See font(7) for a full discussion of font name syntaxes. iykyk. π
π EXAMPLES π
List the fonts on the system:
% fontsrv &
% 9p ls font
or:
% 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
π SOURCE π
/src/cmd/fontsrv
π SEE ALSO π
π BUGS π
- Due to OS X restrictions,
fontsrvdoes not fork itself into the background when serving a user-level file system. Not me being dramatic, itβs just facts. π Fontsrvhas 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
rin the subfontTimes-Roman/14a/x0000.bitappears truncated on the right and too light overall. π
And thatβs a wrap on FONTSRV(4) from the Kernel Interfaces Manual, bestie β the source is /src/cmd/fontsrv, and the footer just signs off as FONTSRV(4) with no extra date listed πβ¨π
π¦ where this page comes from
- alpine 3.24: plan9port-doc 0_git20260208-r0 Β· LPL-1.02
- arch rolling: plan9port 20261021-2 Β· custom
- nixos 26.05: plan9port 0-unstable-2025-11-10
- nixos 26.05: plan9port-wayland 0-unstable-2025-11-26
- nixpkgs unstable: plan9port 0-unstable-2025-11-10
- nixpkgs unstable: plan9port-wayland 0-unstable-2025-11-26
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms