Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
xfs(1)			    General Commands Manual			xfs(1)

       xfs - X font server

       xfs [ -config configuration_file	] [ -daemon ] [	-droppriv ] [ -inetd ]
       [ -ls listen_socket ] [ -nodaemon ] [ -port tcp_port ] [	-user username
       ] [ -version ]

       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 adminis-
       trator,	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).

       -config configuration_file
	      specifies	the configuration file xfs will	use.  If this  parame-
	      ter  is  not specified, xfs will read its	configuration from the
	      default file, /usr/local/etc/X11/fs/config.

	      instructs	xfs to fork and	go into	the  background	 automatically
	      at  startup.  If this option is not specified, xfs will run as a
	      regular process (unless it was built to daemonize	 by  default).
	      When  running  as	a daemon, xfs will attempt to create a file in
	      which it stores its process ID, and will delete that  file  upon

	      instructs	 xfs  to  attempt to run as user and group xfs (unless
	      the -user	option is used).  This has been	implemented for	 secu-
	      rity  reasons,  as xfs may have undiscovered buffer overflows or
	      other paths for possible exploit,	both local and	remote.	  When
	      using  this  option,  you	 may also wish to specify `no-listen =
	      tcp' in the config file, which ensures that xfs will not to  use
	      a	TCP port at all.  By default, xfs runs with the	user and group
	      IDs of the user who invoked it.

       -inetd informs xfs that it is being started by inetd, and that  a  lis-
	      tening  socket  on the appropriate port is being passed as stan-
	      dard input.   Assumes that inetd is configured to	 "wait"	 mode,
	      and  will	 thus  allow xfs to handle listening for and accepting
	      further connections on  this  port.    This  allows  xfs	to  be
	      started on demand	when the first font client connects.  When us-
	      ing this option, the -daemon and -port flags 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.

	      instructs	 xfs  not  to daemonize	(fork and detach from its con-
	      trolling terminal).  This	option only has	an effect  if  xfs  is
	      built to daemonize by default, which is not the stock configura-

       -port tcp_port
	      specifies	the TCP	port number on which the  server  will	listen
	      for  connections.	 The default port number is 7100.  This	option
	      is ignored if xfs	is configured to not listen to TCP  transports
	      at all (see "Configuration File Format" below).

       -user username
	      instructs	 xfs  to  run as the user username.  See -droppriv for
	      why this may be desired.	By default, xfs	runs with the user and
	      group IDs	of the user who	invoked	it.

	      instructs	xfs to print the program version and exit.

       xfs  reads  and	serves any font	file format recognized by the X	server
       itself.	It locates font	files through the  specification  of  a	 cata-
       logue, 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 of X(7) for	the syntax of the string.

       catalogue (list of strings)
	      declares	as  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	a catalogue:<dir> entry. See the CATALOGUE DIR
	      section 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  it-
	      self   when   the	  number  of  connected	 clients  reaches  the

       default-point-size (cardinal)
	      The default pointsize (in	decipoints)  for  font	requests  that
	      don't specify a point size.  The default is 120.

       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 substi-
	      tuted into requests for scaled fonts which do not	specify	a res-
	      olution.	A resolution is	a comma-separated pair	of  horizontal
	      and  vertical  resolutions in pixels per inch.  Multiple resolu-
	      tions 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 dis-
	      abled, `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 er-
	      rors will	be logged here,	unless use-syslog is  set  to  a  true
	      value (see below).

       no-listen (trans-type)
	      disables the specified transport type.  For example, TCP/IP con-
	      nections can be disabled with `no-listen = tcp'.

       port (cardinal)
	      indicates	the TCP	port on	which the server will listen for  con-

       use-syslog (boolean)
	      determines whether errors	and diagnostics	should be reported via
	      syslog(3)	(on supported systems) instead of being	written	to the
	      error-file (see above).

       You  can	 specify  a  special  kind  of	font  path  in	the form cata-
       logue:<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	excep-
       tion 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 at-
       tribute the attribute unscaled etc. This	is functionally	equivalent  to
       setting the following font path:


   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,

	# 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

       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	alter-
       nate location via the error-file	 and  use-syslog  configuration	 vari-
       ables; see "Configuration File Format", above.

       xfs handles the following signals specially:

	      causes the font server to	exit cleanly.

	      causes xfs to re-read its	configuration file.

	      causes xfs to flush any cached data it may have.

       SIGHUP causes xfs to reset, closing all active connections and re-read-
	      ing the configuration file.

       Multiple	catalogues should be supported.

       Significant further development of xfs is unlikely.  One	of the	origi-
       nal  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  li-
       brary) is the norm in contemporary software.

       Dave Lemke, Network Computing Devices, Inc
       Keith Packard, Massachusetts Institute of Technology

       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.0				xfs(1)


Want to link to this manual page? Use this URL:

home | help