xfs(1)
π NAME π
okay so this is xfs(1) from the General Commands Manual β literally the X font server, bestie. She supplies fonts to X Window System display servers. The server is usually run by a system administrator, and started via init(8) or inetd(8). Users may also wish to start private font servers for specific sets of fonts.
To connect to a font server, see the documentation for your X server; it likely supports the syntax documented in the βFONT SERVER NAMESβ section of X(7). slay. π
β¨ SYNOPSIS β¨
xfs [ -config configuration_file ] [ -daemon ] [ -droppriv ] [ -inetd ]
[ -ls listen_socket ] [ -nodaemon ] [ -port tcp_port ] [ -user username
] [ -version ]
πΈ DESCRIPTION πΈ
xfs is the X Window System font server. It supplies fonts to X Window System display servers. The server is usually run by a system administrator, and started via init(8) or inetd(8). Users may also wish to start private font servers for specific sets of fonts.
To connect to a font server, see the documentation for your X server; it likely supports the syntax documented in the βFONT SERVER NAMESβ section of X(7).
π OPTIONS π
-config configuration_fileβ tellsxfswhich configuration file to use. If this parameter is not specified,xfswill read its configuration from the default file,/nix/store/fnihk9d5v015wrfrn4nhgwpvz9c6n8vz-xfs-1.2.2/etc/X11/fs/config.-daemonβ instructsxfsto fork and go into the background automatically at startup. If this option is not specified,xfswill run as a regular process (unless it was built to daemonize by default). When running as a daemon,xfswill attempt to create a file in which it stores its process ID, and will delete that file upon exit;-dropprivβ instructsxfsto attempt to run as user and groupxfs(unless the-useroption is used). This has been implemented for security reasons, asxfsmay have undiscovered buffer overflows or other paths for possible exploit, both local and remote. When using this option, you may also wish to specifyno-listen = tcpin the config file, which ensures thatxfswill not use a TCP port at all. By default,xfsruns with the user and group IDs of the user who invoked it.-inetdβ informsxfsthat it is being started byinetd, and that a listening socket on the appropriate port is being passed as standard input. Assumes thatinetdis configured to "wait" mode, and will thus allowxfsto handle listening for and accepting further connections on this port. This allowsxfsto be started on demand when the first font client connects. When using this option, the-daemonand-portflags are ignored.-ls listen_socketβ specifies a file descriptor which is already set up to be used as the listen socket. This option is only intended to be used by the font server itself when automatically spawning another copy of itself to handle additional connections.-nodaemonβ instructsxfsnot to daemonize (fork and detach from its controlling terminal). This option only has an effect ifxfsis built to daemonize by default, which is not the stock configuration.-port tcp_portβ specifies the TCP port number on which the server will listen for connections. The default port number is7100. This option is ignored ifxfsis configured to not listen to TCP transports at all (see βConfiguration File Formatβ below).-user usernameβ instructsxfsto run as the user username. See-dropprivfor why this may be desired. By default,xfsruns with the user and group IDs of the user who invoked it.-versionβ instructsxfsto print the program version and exit.
π¦ INPUT FILES π¦
xfs reads and serves any font file format recognized by the X server itself. It locates font files through the specification of a catalogue, which is declared in xfs's configuration file.
π Configuration File Format π
xfs reads its configuration from a text file (see the -config option in the βOPTIONSβ section above). The configuration language is a list of keyword and value pairs. Each keyword is followed by an equals sign (=) and then the desired value.
Recognized keywords include:
alternate-servers(list of strings) β lists alternate servers for this font server. See the βFONT SERVER NAMESβ section ofX(7)for the syntax of the string.catalogue(list of strings) β declares an ordered list of font path element names from which fonts will be served. The current implementation only supports a single catalogue ("all") containing all of the specified fonts. A special directory with symlinks to font paths can be specified using acatalogue:<dir>entry. See theCATALOGUE DIRsection below for details.client-limit(cardinal) β determines the number of clients this font server will support before refusing service. This is useful for tuning the load on each individual font server.clone-self(boolean) β indicates whether this font server should attempt to clone itself when the number of connected clients reaches theclient-limit.default-point-size(cardinal) β the default pointsize (in decipoints) for font requests that don't specify a point size. The default is120.default-resolutions(list of resolutions) β indicates the resolutions the server supports by default. This information may be used as a hint for pre-rendering, and substituted into requests for scaled fonts which do not specify a resolution. A resolution is a comma-separated pair of horizontal and vertical resolutions in pixels per inch. Multiple resolutions are separated by commas.deferglyphs(string) β sets the mode for delayed fetching and caching of glyphs. string should be one of βnoneβ, meaning glyphs deferment is disabled, βallβ, meaning it is enabled for all fonts, and β16β, meaning it is enabled only for 16-bit fonts.error-file(string) β indicates the filename of the error file. All warnings and errors will be logged here, unlessuse-syslogis set to a true value (see below).no-listen(trans-type) β disables the specified transport type. For example, TCP/IP connections can be disabled withno-listen = tcp.port(cardinal) β indicates the TCP port on which the server will listen for connections.use-syslog(boolean) β determines whether errors and diagnostics should be reported viasyslog(3)(on supported systems) instead of being written to theerror-file(see above).
π§ CATALOGUE DIR π§
You can specify a special kind of font path in the form catalogue:<dir>. The directory specified after the catalogue: prefix will be scanned for symlinks and each symlink destination will be added as a local fontfile FPE.
The symlink can be suffixed by attributes such as unscaled, which will be passed through to the underlying fontfile FPE. The only exception is the newly introduced pri attribute, which will be used for ordering the font paths specified by the symlinks.
An example configuration:
75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
ghostscript:pri=60 -> /usr/share/fonts/default/ghostscript
misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc
type1:pri=40 -> /usr/share/X11/fonts/Type1
type1:pri=50 -> /usr/share/fonts/default/Type1
This will add /usr/share/X11/fonts/misc as the first FPE with the unscaled attribute etc. This is functionally equivalent to setting the following font path:
/usr/share/X11/fonts/misc:unscaled,
/usr/share/X11/fonts/75dpi:unscaled,
/usr/share/X11/fonts/Type1,
/usr/share/fonts/default/Type1,
/usr/share/fonts/default/ghostscript
π Example Configuration File π
#
# sample font server configuration file
#
# allow a max of 10 clients to connect to this font server.
client-limit = 10
# When a font server reaches the above limit, start up a new one.
clone-self = on
# Identify alternate font servers for clients to use.
alternate-servers = hansen:7101,hansen:7102
# Look for fonts in the following directories. The first is a set of
# TrueType outlines, the second is a set of misc bitmaps (such as terminal
# and cursor fonts), and the last is a set of 100dpi bitmaps.
#
catalogue = /usr/share/X11/fonts/TTF,
/usr/share/X11/fonts/misc,
/usr/share/X11/fonts/100dpi/
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 100,100,75,75
# Specify our log filename.
error-file = /var/log/xfs.log
# Direct diagnostics to our own log file instead of using syslog.
use-syslog = off
π OUTPUT FILES π
When operating in daemon mode, xfs sends diagnostic messages (errors and warnings) to the log file specified by the error-file configuration variable by default. However, these messages can be sent to an alternate location via the error-file and use-syslog configuration variables; see βConfiguration File Formatβ, above.
β ASYNCHRONOUS EVENTS β
xfs handles the following signals specially:
SIGTERMβ causes the font server to exit cleanly.SIGUSR1β causesxfsto re-read its configuration file.SIGUSR2β causesxfsto flush any cached data it may have.SIGHUPβ causesxfsto reset, closing all active connections and re-reading the configuration file.
π BUGS π
Multiple catalogues should be supported. periodt.
π₯ FUTURE DIRECTIONS π₯
Significant further development of xfs is unlikely. One of the original motivations behind it was the single-threaded nature of the X server β a user's X session could seem to βfreeze upβ while the X server took a moment to rasterize a font. This problem with the X server, which remains single-threaded in all popular implementations to this day, has been mitigated on two fronts: machines have gotten much faster, and client-side font rendering (particularly via the Xft library) is the norm in contemporary software.
π AUTHORS π
- Dave Lemke, Network Computing Devices, Inc
- Keith Packard, Massachusetts Institute of Technology
π SEE ALSO π
X(7)xfsinfo(1)fslsfonts(1)init(8)inetd(8)syslog(3)- The X Font Service Protocol
- Font Server Implementation Overview
X Version 11 Β· xfs 1.2.2 β footer source/version and date-line energy, bestie; cute sign-off complete π«Άπ
π¦ where this page comes from
- nixos 26.05: xfs 1.2.2
- Copyright 1991, 1998 The Open Group
- Copyright 1991 Network Computing Devices
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms