---
name: "XFree86"
section: "1x"
platform: "linux"
package: "xserver-xfree86"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XFree86"
---

# XFree86(1x)

X11R6 X server

## NAME

XFree86 - X11R6 X server

## SYNOPSIS

**XFree86** \[:display\] \[option ...\]

## DESCRIPTION

XFree86 is an X server that was originally designed for UNIX and UNIX-like operating systems running on Intel x86 hardware.  It now runs on a wider range of hardware and OS platforms.

This work was originally derived from *X386 1.2* which was contributed to X11R5 by Snitily Graphics Consulting Service. The XFree86 X server architecture was redesigned for the 4.0 release, and it includes among other things a loadable module system donated by Metro Link, Inc.  The current XFree86 release is compatible with X11R6.6.

## CONFIGURATIONS

*XFree86* operates under a wide range of operating systems and hardware platforms. The Intel x86 (IA32) architecture is the most widely supported hardware platform.  Other hardware platforms include Compaq Alpha, Intel IA64, SPARC and PowerPC.  The most widely supported operating systems are the free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD and OpenBSD.  Commercial UNIX operating systems such as Solaris (x86) and UnixWare are also supported.  Other supported operating systems include LynxOS, and GNU Hurd.  Darwin and Mac OS X are supported with the XDarwin(1) X server.  Win32/Cygwin is supported with the XWin X server.

## NETWORK CONNECTIONS

*XFree86* supports connections made using the following reliable byte-streams:

- *Local*

  On most platforms, the "Local" connection type is a UNIX-domain socket. On some System V platforms, the "local" connection types also include STREAMS pipes, named pipes, and some other mechanisms.

- *TCPIP*

  *XFree86* listens on port 6000+*n*, where *n* is the display number.  This connection type can be disabled with the **-nolisten** option (see the [Xserver(1)](/Xserver/1.md) man page for details).

## ENVIRONMENT VARIABLES

For operating systems that support local connections other than Unix Domain sockets (SVR3 and SVR4), there is a compiled-in list specifying the order  in which local connections should be attempted.  This list can be overridden by the *XLOCAL* environment variable described below.  If the display name  indicates a best-choice connection should be made (e.g. *:0.0*), each  connection mechanism is tried until a connection succeeds or no more  mechanisms are available.  Note: for these OSs, the Unix Domain socket connection is treated differently from the other local connection types. To use it the connection must be made to *unix:0.0*.

The *XLOCAL* environment variable should contain a list of one more more of the following:

```
NAMED
PTS
SCO
ISC
```

which represent SVR4 Named Streams pipe, Old-style USL Streams pipe, SCO XSight Streams pipe, and ISC Streams pipe, respectively. You can select a single mechanism (e.g. *XLOCAL=NAMED*), or an ordered list (e.g. *XLOCAL="NAMED:PTS:SCO"*).  This variable overrides the compiled-in defaults.  For SVR4 it is recommended that *NAMED* be the first preference connection.  The default setting is *PTS:NAMED:ISC:SCO*.

To globally override the compiled-in defaults, you should define (and export if using *sh* or *ksh*) *XLOCAL* globally.  If you use *startx/xinit*, the definition should be at the top of your *.xinitrc* file.  If you use *xdm*, the definitions should be early on in the  */usr/X11R6/lib/X11/xdm/Xsession* script.

## OPTIONS

In addition to the normal server options described in the *[Xserver(1)](/Xserver/1.md)* manual page, *XFree86* accepts the following command line switches:

- **vt*XX***

  *XX* specifies the Virtual Terminal device number which *XFree86* will use.  Without this option, *XFree86* will pick the first available Virtual Terminal that it can locate.  This option applies only to platforms such as Linux, BSD, SVR3 and SVR4, that have virtual terminal support.

- **-allowMouseOpenFail**

  Allow the server to start up even if the mouse device can't be opened or initialised.  This is equivalent to the **AllowMouseOpenFail** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-allowNonLocalModInDev**

  Allow changes to keyboard and mouse settings from non-local clients. By default, connections from non-local clients are not allowed to do this.  This is equivalent to the **AllowNonLocalModInDev** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-allowNonLocalXvidtune**

  Make the VidMode extension available to remote clients.  This allows the xvidtune client to connect from another host.  This is equivalent to the **AllowNonLocalXvidtune** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.  By default non-local connections are not allowed.

- **-bgamma *value***

  Set the blue gamma correction.  *value* must be between 0.1 and 10. The default is 1.0.  Not all drivers support this.  See also the **-gamma**, **-rgamma**, and **-ggamma** options.

- **-bpp *n***

  No longer supported.  Use **-depth** to set the color depth, and use **-fbbpp** if you really need to force a non-default framebuffer (hardware) pixel format.

- **-configure**

  When this option is specified, the X server loads all video driver modules, probes for available hardware, and writes out an initial [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file based on what was detected.  This option currently has some problems on some platforms, but in most cases it is a good way to bootstrap the configuration process.  This option is only available when the server is run as root (i.e, with real-uid 0).

- **-crt /dev/tty*XX***

  SCO only.  This is the same as the **vt** option, and is provided for compatibility with the native SCO X server.

- **-depth *n***

  Sets the default color depth.  Legal values are 1, 4, 8, 15, 16, and 24.  Not all drivers support all values.

- **-disableModInDev**

  Disable dynamic modification of input device settings.  This is equivalent to the **DisableModInDev** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-disableVidMode**

  Disable the the parts of the VidMode extension (used by the xvidtune client) that can be used to change the video modes.  This is equivalent to the **DisableVidModeExtension** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-fbbpp *n***

  Sets the number of framebuffer bits per pixel.  You should only set this if you're sure it's necessary; normally the server can deduce the correct value from **-depth** above.  Useful if you want to run a depth 24 configuration with a 24 bpp framebuffer rather than the (possibly default) 32 bpp framebuffer (or vice versa).  Legal values are 1, 8, 16, 24, 32. Not all drivers support all values.

- **-flipPixels**

  Swap the default values for the black and white pixels.

- **-gamma *value***

  Set the gamma correction.  *value* must be between 0.1 and 10.  The default is 1.0.  This value is applied equally to the R, G and B values. Those values can be set independently with the **-rgamma**, **-bgamma**, and **-ggamma** options.  Not all drivers support this.

- **-ggamma *value***

  Set the green gamma correction.  *value* must be between 0.1 and 10.  The default is 1.0.  Not all drivers support this.  See also the **-gamma**, **-rgamma**, and **-bgamma** options.

- **-ignoreABI**

  The X server checks the ABI revision levels of each module that it loads. It will normally refuse to load modules with ABI revisions that are newer than the server's.  This is because such modules might use interfaces that the server does not have.  When this option is specified, mismatches like this are downgraded from fatal errors to warnings.  This option should be used with care.

- **-isolateDevice *bus-id***

  Restrict device resets to the device at *bus-id*. The *bus-id* string has the form *bustype***:***bus***:***device***:***function* (e.g., ‘PCI:1:0:0’). At present, only isolation of PCI devices is supported; i.e., this option is ignored if *bustype* is anything other than ‘PCI’.

- **-keeptty**

  Prevent the server from detaching its initial controlling terminal. This option is only useful when debugging the server.  Not all platforms support (or can use) this option.

- **-keyboard *keyboard-name***

  Use the [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file **InputDevice** section called *keyboard-name* as the core keyboard.  This option is ignored when the **Layout** section specifies a core keyboard. In the absence of both a Layout section and this option, the first relevant **InputDevice** section is used for the core keyboard.

- **-layout *layout-name***

  Use the [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file **Layout** section called *layout-name*. By default the first **Layout** section is used.

- **-logfile *filename***

  Use the file called *filename* as the X server log file.  The default log file is **/var/log/XFree86.*n*.log** on most platforms, where *n* is the display number of the X server.  The default may be in a different directory on some platforms.  This option is only available when the server is run as root (i.e, with real-uid 0).

- **-logverbose** \[*n*\]

  Sets the verbosity level for information printed to the X server log file.  If the *n* value isn't supplied, each occurrance of this option increments the log file verbosity level.  When the *n* value is supplied, the log file verbosity level is set to that value. The default log file verbosity level is 3.

- **-modulepath *searchpath***

  Set the module search path to *searchpath*. *searchpath* is a comma separated list of directories to search for X server modules. This option is only available when the server is run as root (i.e, with real-uid 0).

- **-nosilk**

  Disable Silken Mouse support.

- **-pixmap24**

  Set the internal pixmap format for depth 24 pixmaps to 24 bits per pixel. The default is usually 32 bits per pixel.  There is normally little reason to use this option.  Some client applications don't like this pixmap format, even though it is a perfectly legal format. This is equvalent to the **Pixmap** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-pixmap32**

  Set the internal pixmap format for depth 24 pixmaps to 32 bits per pixel. This is usually the default. This is equvalent to the **Pixmap** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **-pointer *pointer-name***

  Use the [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file **InputDevice** section called *pointer-name* as the core pointer.  This option is ignored when the **Layout** section specifies a core pointer. In the absence of both a Layout section and this option, the first relevant **InputDevice** section is used for the core pointer.

- **-probeonly**

  Causes the server to exit after the device probing stage.  The XF86Config file is still used when this option is given, so information that can be auto-detected should be commented out.

- **-quiet**

  Suppress most informational messages at startup.  The verbosity level is set to zero.

- **-rgamma *value***

  Set the red gamma correction.  *value* must be between 0.1 and 10. The default is 1.0.  Not all drivers support this.  See also the **-gamma**, **-bgamma**, and **-ggamma** options.

- **-scanpci**

  When this option is specified, the X server scans the PCI bus, and prints out some information about each device that was detected.  See also [scanpci(1)](/scanpci/1.md) and pcitweak(1).

- **-screen *screen-name***

  Use the [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file **Screen** section called *screen-name*. By default the screens referenced by the default **Layout** section are used, or the first **Screen** section when there are no **Layout** sections.

- **-showconfig**

  This is the same as the **-version** option, and is included for compatibility reasons.  It may be removed in a future release, so the **-version** option should be used instead.

- **-weight *nnn***

  Set RGB weighting at 16 bpp.  The default is 565.  This applies only to those drivers which support 16 bpp.

- **-verbose** \[*n*\]

  Sets the verbosity level for information printed on stderr.  If the *n* value isn't supplied, each occurrance of this option increments the verbosity level.  When the *n* value is supplied, the verbosity level is set to that value.  The default verbosity level is 0.

- **-version**

  Print out the server version, patchlevel, release date, the operating system/platform it was built on, and whether it includes module loader support.

- **-xf86config *file***

  Read the server configuration from *file*.  This option will work for any file when the server is run as root (i.e, with real-uid 0), or for files relative to a directory in the config search path for all other users.

## KEYBOARD

The XFree86 server is normally configured to recognize various special combinations of key presses that instruct the server to perform some action, rather than just sending the keypress event to a client application. The default XKEYBOARD keymap defines the key combinations listed below. The server also has these key combinations builtin to its event handler for cases where the XKEYBOARD extension is not being used. When using the XKEYBOARD extension, which key combinations perform which actions is completely configurable.

For more information about when the builtin event handler is used to recognize the special key combinations, see the documentation on the **HandleSpecialKeys** option in the [*XF86Config-4*(5x)](/XF86Config-4/5x.md) man page.

The special combinations of key presses recognized directly by *XFree86* are:

- **Ctrl+Alt+Backspace**

  Immediately kills the server -- no questions asked.  This can be disabled with the **DontZap** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **Ctrl+Alt+Keypad-Plus**

  Change video mode to next one specified in the configuration file. This can be disabled with the **DontZoom** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **Ctrl+Alt+Keypad-Minus**

  Change video mode to previous one specified in the configuration file. This can be disabled with the **DontZoom** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

- **Ctrl+Alt+Keypad-Multiply**

  Not treated specially by default.  If the **AllowClosedownGrabs** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option is specified, this key sequence kills clients with an active keyboard or mouse grab as well as killing any application that may have locked the server, normally using the [XGrabServer(3x)](/XGrabServer/3x.md) Xlib function.

- **Ctrl+Alt+Keypad-Divide**

  Not treated specially by default.  If the **AllowDeactivateGrabs** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option is specified, this key sequence deactivates any active keyboard and mouse grabs.

- **Ctrl+Alt+F1...F12**

  For BSD and Linux systems with virtual terminal support, these keystroke combinations are used to switch to virtual terminals 1 through 12, respectively.  This can be disabled with the **DontVTSwitch** [*XF86Config-4*(5x)](/XF86Config-4/5x.md) file option.

## SETUP

*XFree86* uses a configuration file called **XF86Config** for its initial setup.   Refer to the [*XF86Config*(5x)](/XF86Config/5x.md) manual page for information about the format of this file.

## FILES

The X server config file can be found in a range of locations.  These are documented fully in the [*XF86Config-4*(5x)](/XF86Config-4/5x.md)

manual page.  The most commonly used locations are shown here.

- /etc/X11/XF86Config

  Server configuration file

- /etc/X11/XF86Config-4

  Server configuration file

- /etc/XF86Config

  Server configuration file

- /usr/X11R6/etc/XF86Config

  Server configuration file

- /usr/X11R6/lib/X11/XF86Config

  Server configuration file

- /var/log/XFree86.*n*.log

  Server log file for display *n*.

- /usr/X11R6/bin/∗

  Client binaries

- /usr/X11R6/include/∗

  Header files

- /usr/X11R6/lib/∗

  Libraries

- /usr/X11R6/lib/X11/fonts/∗

  Fonts

- /usr/X11R6/lib/X11/rgb.txt

  Color names to RGB mapping

- /usr/X11R6/lib/X11/XErrorDB

  Client error message database

- /usr/X11R6/lib/X11/app-defaults/∗

  Client resource specifications

- /usr/X11R6/man/man?/∗

  Manual pages

- /etc/X*n*.hosts

  Initial access control list for display *n*

## SEE ALSO

[X(7x)](/X/7x.md), [Xserver(1)](/Xserver/1.md), [xdm(1)](/xdm/1.md), [xinit(1)](/xinit/1.md), [XF86Config-4(5x)](/XF86Config-4/5x.md), xf86config(1), xf86cfg(1), [xvidtune(1)](/xvidtune/1.md), [apm(4x)](/apm/4x.md), ati(4x), [chips(4x)](/chips/4x.md), [cirrus(4x)](/cirrus/4x.md), [cyrix(4x)](/cyrix/4x.md), [fbdev(4x)](/fbdev/4x.md), [glide(4x)](/glide/4x.md), [glint(4x)](/glint/4x.md), [i128(4x)](/i128/4x.md), [i740(4x)](/i740/4x.md), [i810(4x)](/i810/4x.md), [imstt(4x)](/imstt/4x.md), [mga(4x)](/mga/4x.md), [neomagic(4x)](/neomagic/4x.md), [nsc(4x)](/nsc/4x.md), [nv(4x)](/nv/4x.md), [r128(4x)](/r128/4x.md), [rendition(4x)](/rendition/4x.md), [s3virge(4x)](/s3virge/4x.md), [siliconmotion(4x)](/siliconmotion/4x.md), [sis(4x)](/sis/4x.md), sunbw2(4x), suncg14(4x), suncg3(4x), suncg6(4x), sunffb(4x), sunleo(4x), suntcx(4x), [tdfx(4x)](/tdfx/4x.md), tga(4x), [trident(4x)](/trident/4x.md), [tseng(4x)](/tseng/4x.md), [v4l(4x)](/v4l/4x.md), [vesa(4x)](/vesa/4x.md), [vga(4x)](/vga/4x.md), [vmware(4x)](/vmware/4x.md),\
 README *\<http://www.xfree86.org/current/README.html\>*,\
 RELNOTES *\<http://www.xfree86.org/current/RELNOTES.html\>*,\
 README.mouse *\<http://www.xfree86.org/current/mouse.html\>*,\
 README.DRI *\<http://www.xfree86.org/current/DRI.html\>*,\
 Status *\<http://www.xfree86.org/current/Status.html\>*,\
 Install *\<http://www.xfree86.org/current/Install.html\>*.

## AUTHORS

XFree86 has many contributors world wide.  The names of most of them can be found in the documentation, CHANGELOG files in the source tree, and in the actual source code.

XFree86 was originally based on *X386 1.2* by Thomas Roell, which was contributed to the then X Consortium's X11R5 distribution by SGCS.

The project that became XFree86 was originally founded in 1992 by David Dawes, Glenn Lai, Jim Tsillas and David Wexelblat.

XFree86 was later integrated in the then X Consortium's X11R6 release by a group of dedicated XFree86 developers, including the following:

```
Stuart Anderson    anderson@metrolink.com
Doug Anson         danson@lgc.com
Gertjan Akkerman   akkerman@dutiba.twi.tudelft.nl
Mike Bernson       mike@mbsun.mlb.org
Robin Cutshaw      robin@XFree86.org
David Dawes        dawes@XFree86.org
Marc Evans         marc@XFree86.org
Pascal Haible      haible@izfm.uni-stuttgart.de
Matthieu Herrb     Matthieu.Herrb@laas.fr
Dirk Hohndel       hohndel@XFree86.org
David Holland      davidh@use.com
Alan Hourihane     alanh@fairlite.demon.co.uk
Jeffrey Hsu        hsu@soda.berkeley.edu
Glenn Lai          glenn@cs.utexas.edu
Ted Lemon          mellon@ncd.com
Rich Murphey       rich@XFree86.org
Hans Nasten        nasten@everyware.se
Mark Snitily       mark@sgcs.com
Randy Terbush      randyt@cse.unl.edu
Jon Tombs          tombs@XFree86.org
Kees Verstoep      versto@cs.vu.nl
Paul Vixie         paul@vix.com
Mark Weaver        Mark_Weaver@brown.edu
David Wexelblat    dwex@XFree86.org
Philip Wheatley    Philip.Wheatley@ColumbiaSC.NCR.COM
Thomas Wolfram     wolf@prz.tu-berlin.de
Orest Zborowski    orestz@eskimo.com
```

The current XFree86 core team consists of:

```
Stuart Anderson    anderson@netsweng.com
Robin Cutshaw      robin@xfree86.org
David Dawes        dawes@xfree86.org
Egbert Eich        eich@xfree86.org
Marc Evans         marc@xfree86.org
Dirk Hohndel       hohndel@xfree86.org
Alan Hourihane     alanh@xfree86.org
Harald Koenig      koenig@xfree86.org
Marc La France     tsi@xfree86.org
Kevin Martin       martin@xfree86.org
Rich Murphey       rich@xfree86.org
Takaaki Nomura     amadeus@yk.rim.or.jp
Keith Packard      keithp@xfree86.org
Jon Tombs          jon@gtex02.us.es
Mark Vojkovich     markv@xfree86.org
David Wexelblat    dwex@xfree86.org
```

*XFree86* source is available from the FTP server *\<ftp://ftp.XFree86.org/pub/XFree86/\>*, and from the XFree86 CVS server *\<http://www.xfree86.org/cvs/\>*.  Documentation and other information can be found from the XFree86 web site *\<http://www.xfree86.org/\>*.
