Skip to content

Man:5:xorg.conf

xorg.conf(5)                                                 File Formats Manual                                                 xorg.conf(5)

NAME
       xorg.conf, xorg.conf.d - configuration files for Xorg X server

INTRODUCTION
       Xorg  supports  several  mechanisms  for  supplying/obtaining configuration and run-time parameters: command line options, environment
       variables, the xorg.conf and xorg.conf.d configuration files, auto-detection, and fallback defaults. When the same information is sup‐
       plied  in  more  than  one way, the highest precedence mechanism is used. The list of mechanisms is ordered from highest precedence to
       lowest. Note that not all parameters can be supplied via all methods. The available command line  options  and  environment  variables
       (and some defaults) are described in the Xserver(1) and Xorg(1) manual pages. Most configuration file parameters, with their defaults,
       are described below. Driver and module specific configuration parameters are described in the relevant driver or module manual page.

DESCRIPTION
       Xorg uses a configuration file called xorg.conf and files ending in the suffix .conf from the directory xorg.conf.d  for  its  initial
       setup.  The xorg.conf configuration file is searched for in the following places when the server is started as a normal user:

           /etc/X11/<cmdline>
           /usr/etc/X11/<cmdline>
           /etc/X11/$XORGCONFIG
           /usr/etc/X11/$XORGCONFIG
           /etc/X11/xorg.conf
           /etc/xorg.conf
           /usr/etc/X11/xorg.conf.<hostname>
           /usr/etc/X11/xorg.conf
           /usr/lib/X11/xorg.conf.<hostname>
           /usr/lib/X11/xorg.conf

       where  <cmdline> is a relative path (with no “..” components) specified with the -config command line option, $XORGCONFIG is the rela‐
       tive path (with no “..” components) specified by that environment variable, and <hostname> is the machine's hostname  as  reported  by
       gethostname(3).

       When the Xorg server is started by the “root” user, the config file search locations are as follows:

           <cmdline>
           /etc/X11/<cmdline>
           /usr/etc/X11/<cmdline>
           $XORGCONFIG
           /etc/X11/$XORGCONFIG
           /usr/etc/X11/$XORGCONFIG
           /etc/X11/xorg.conf
           /etc/xorg.conf
           /usr/etc/X11/xorg.conf.<hostname>
           /usr/etc/X11/xorg.conf
           /usr/lib/X11/xorg.conf.<hostname>
           /usr/lib/X11/xorg.conf

       where  <cmdline>  is  the  path specified with the -config command line option (which may be absolute or relative), $XORGCONFIG is the
       path specified by that environment variable (absolute or relative), $HOME is the path specified by that environment variable  (usually
       the home directory), and <hostname> is the machine's hostname as reported by gethostname(3).

       Additional configuration files are searched for in the following directories when the server is started as a normal user:

           /etc/X11/<cmdline>
           /etc/X11/<cmdline>
           /etc/X11/xorg.conf.d
           /etc/X11/xorg.conf.d

       where <cmdline> is a relative path (with no “..” components) specified with the -configdir command line option.

       When the Xorg server is started by the “root” user, the config directory search locations are as follows:

           <cmdline>
           /etc/X11/<cmdline>
           /etc/X11/<cmdline>
           /etc/X11/xorg.conf.d
           /etc/X11/xorg.conf.d

       where <cmdline> is the path specified with the -configdir command line option (which may be absolute or relative).

       Finally,  configuration  files  will  also  be searched for in a directory reserved for system use.  This is to separate configuration
       files from the vendor or 3rd party packages from those of local administration.  These files are found in the following directory:

           /usr/share/X11/xorg.conf.d

       The xorg.conf and xorg.conf.d files are composed of a number of sections which may be present in any order, or omitted to use  default
       configuration values.  Each section has the form:

           Section  "SectionName"
               SectionEntry
               ...
           EndSection

       The section names are:

           Files          File pathnames
           ServerFlags    Server flags
           Module         Dynamic module loading
           Extensions     Extension enabling
           InputDevice    Input device description
           InputClass     Input class description
           OutputClass    Output class description
           Device         Graphics device description
           VideoAdaptor   Xv video adaptor description
           Monitor        Monitor description
           Modes          Video modes descriptions
           Screen         Screen configuration
           ServerLayout   Overall layout
           DRI            DRI-specific configuration
           Vendor         Vendor-specific configuration

       The  following  obsolete  section names are still recognised for compatibility purposes.  In new config files, the InputDevice section
       should be used instead.

           Keyboard       Keyboard configuration
           Pointer        Pointer/mouse configuration

       The old XInput section is no longer recognised.

       The ServerLayout sections are at the highest level.  They bind together the input and output devices that will be used in  a  session.
       The input devices are described in the InputDevice sections.  Output devices usually consist of multiple independent components (e.g.,
       a graphics board and a monitor).  These multiple components are bound together in the Screen sections, and it is these that are refer‐
       enced  by  the  ServerLayout  section.   Each  Screen  section binds together a graphics board and a monitor.  The graphics boards are
       described in the Device sections, and the monitors are described in the Monitor sections.

       Config file keywords are case-insensitive, and “_” characters are ignored.  Most strings (including Option names) are also case-insen‐
       sitive, and insensitive to white space and “_” characters.

       Each  config  file  entry usually takes up a single line in the file.  They consist of a keyword, which is possibly followed by one or
       more arguments, with the number and types of the arguments depending on the keyword.  The argument types are:

           Integer     an integer number in decimal, hex or octal
           Real        a floating point number
           String      a string enclosed in double quote marks (")

       Note: hex integer values must be prefixed with “0x”, and octal values with “0”.

       A special keyword called Option may be used to provide free-form data to various components of the server.  The Option  keyword  takes
       either  one  or  two string arguments.  The first is the option name, and the optional second argument is the option value.  Some com‐
       monly used option value types include:

           Integer     an integer number in decimal, hex or octal
           Real        a floating point number
           String      a sequence of characters
           Boolean     a boolean value (see below)
           Frequency   a frequency value (see below)

       Note that all Option values, not just strings, must be enclosed in quotes.

       Boolean options may optionally have a value specified.  When no value is specified, the option's value is TRUE.  The following boolean
       option values are recognised as TRUE:

           1, on, true, yes

       and the following boolean option values are recognised as FALSE:

           0, off, false, no

       If an option name is prefixed with "No", then the option value is negated.

       Example: the following option entries are equivalent:

           Option "Accel"   "Off"
           Option "NoAccel"
           Option "NoAccel" "On"
           Option "Accel"   "false"
           Option "Accel"   "no"

       Frequency option values consist of a real number that is optionally followed by one of the following frequency units:

           Hz, k, kHz, M, MHz

       When  the  unit  name is omitted, the correct units will be determined from the value and the expectations of the appropriate range of
       the value.  It is recommended that the units always be specified when using frequency option values to avoid any errors in determining
       the value.

FILES SECTION
       The  Files  section  is  used to specify some path names required by the server.  Some of these paths can also be set from the command
       line (see Xserver(1) and Xorg(1)).  The command line settings override the values specified in the config file.  The Files section  is
       optional, as are all of the entries that may appear in it.

       The entries that can appear in this section are:

       FontPath "path"
              sets  the  search path for fonts.  This path is a comma separated list of font path elements which the Xorg server searches for
              font databases.  Multiple FontPath entries may be specified, and they will be concatenated to build up the fontpath used by the
              server.   Font path elements can be absolute directory paths, catalogue directories or a font server identifier. The formats of
              the later two are explained below:

              Catalogue directories:

                  Catalogue directories can be specified using the prefix catalogue: before the directory name. The  directory  can  then  be
                  populated with symlinks pointing to the real font directories, using the following syntax in the symlink name:

                      <identifier>:[attribute]:pri=<priority>

                  where  <identifier>  is  an alphanumeric identifier, [attribute] is an attribute which will be passed to the underlying FPE
                  and <priority> is a number used to order the fontfile FPEs. Examples:

                      75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
                      gscript:pri=60 -> /usr/share/fonts/default/ghostscript
                      misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc

              Font server identifiers:

                  Font server identifiers have the form:

                      <trans>/<hostname>:<port-number>

                  where <trans> is the transport type to use to connect to the font server (e.g., unix for UNIX-domain sockets or tcp  for  a
                  TCP/IP connection), <hostname> is the hostname of the machine running the font server, and <port-number> is the port number
                  that the font server is listening on (usually 7100).

              When this entry is not specified in the config file, the server falls back to the compiled-in default font path, which contains
              the following font path elements (which can be set inside a catalogue directory):

                  /usr/share/fonts/X11/misc/
                  /usr/share/fonts/X11/TTF/
                  /usr/share/fonts/X11/OTF/
                  /usr/share/fonts/X11/Type1/
                  /usr/share/fonts/X11/100dpi/
                  /usr/share/fonts/X11/75dpi/

              Font path elements that are found to be invalid are removed from the font path when the server starts up.

       ModulePath "path"
              sets  the  search  path  for  loadable  Xorg server modules.  This path is a comma separated list of directories which the Xorg
              server searches for loadable modules loading in the order specified.  Multiple ModulePath entries may be  specified,  and  they
              will be concatenated to build the module search path used by the server.  The default module path is

                  /usr/lib/xorg/modules

       XkbDir "path"
              sets  the base directory for keyboard layout files.  The -xkbdir command line option can be used to override this.  The default
              directory is

                  /usr/share/X11/xkb

SERVERFLAGS SECTION
       In addition to options specific to this section (described below), the ServerFlags section is used to specify some global Xorg  server
       options.   All of the entries in this section are Options, although for compatibility purposes some of the old style entries are still
       recognised.  Those old style entries are not documented here, and using them is discouraged.  The ServerFlags section is optional,  as
       are the entries that may be specified in it.

       Options  specified  in this section (with the exception of the "DefaultServerLayout" Option) may be overridden by Options specified in
       the active ServerLayout section.  Options with command line equivalents are overridden when their command  line  equivalent  is  used.
       The options recognised by this section are:

       Option "Debug"  "string"
              This  comma-separated  list  provides a way to control various debugging switches from the config file.  At the moment the only
              defined value is dmabuf_capable which instructs glamor to enable some unstable buffer management code.

       Option "DefaultServerLayout"  "layout-id"
              This specifies the default ServerLayout section to use in the absence of the -layout command line option.

       Option "NoTrapSignals"  "boolean"
              This prevents the Xorg server from trapping a range of unexpected fatal signals and exiting cleanly.  Instead, the Xorg  server
              will  die and drop core where the fault occurred.  The default behaviour is for the Xorg server to exit cleanly, but still drop
              a core file.  In general you never want to use this option unless you are debugging an Xorg server problem and know how to deal
              with the consequences.

       Option "DontVTSwitch"  "boolean"
              This  disallows  the  use of the Ctrl+Alt+Fn sequence (where Fn refers to one of the numbered function keys).  That sequence is
              normally used to switch to another "virtual terminal" on operating systems  that  have  this  feature.   When  this  option  is
              enabled, that key sequence has no special meaning and is passed to clients.  Default: off.

       Option "DontZap"  "boolean"
              This  disallows  the  use  of  the Terminate_Server XKB action (usually on Ctrl+Alt+Backspace, depending on XKB options).  This
              action is normally used to terminate the Xorg server.  When this option is enabled, the action has no effect.  Default: off.

       Option "DontZoom"  "boolean"
              This disallows the use of the Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus sequences.  These sequences allows you  to  switch
              between  video  modes.   When  this  option  is enabled, those key sequences have no special meaning and are passed to clients.
              Default: off.

       Option "DisableVidModeExtension"  "boolean"
              This disables the parts of the VidMode extension used by the xvidtune client that can  be  used  to  change  the  video  modes.
              Default: the VidMode extension is enabled.

       Option "AllowNonLocalXvidtune"  "boolean"
              This allows the xvidtune client (and other clients that use the VidMode extension) to connect from another host.  Default: off.

       Option "AllowMouseOpenFail"  "boolean"
              This  tells  the  mousedrv(4) and vmmouse(4) drivers to not report failure if the mouse device can't be opened/initialised.  It
              has no effect on the evdev(4) or other drivers.  Default: false.

       Option "BlankTime"  "time"
              sets the inactivity timeout for the blank phase of the screensaver.  time is in  minutes.   This  is  equivalent  to  the  Xorg
              server's -s flag, and the value can be changed at run-time with xset(1).  Default: 10 minutes.

       Option "StandbyTime"  "time"
              sets  the  inactivity timeout for the standby phase of DPMS mode.  time is in minutes, and the value can be changed at run-time
              with xset(1).  Default: 10 minutes.  This is only suitable for VESA DPMS compatible monitors, and may not be supported  by  all
              video drivers.  It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below).

       Option "SuspendTime"  "time"
              sets  the  inactivity timeout for the suspend phase of DPMS mode.  time is in minutes, and the value can be changed at run-time
              with xset(1).  Default: 10 minutes.  This is only suitable for VESA DPMS compatible monitors, and may not be supported  by  all
              video drivers.  It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below).

       Option "OffTime"  "time"
              sets  the inactivity timeout for the off phase of DPMS mode.  time is in minutes, and the value can be changed at run-time with
              xset(1).  Default: 10 minutes.  This is only suitable for VESA DPMS compatible monitors, and may not be supported by all  video
              drivers.  It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below).

       Option "MaxClients"  "integer"
              Set the maximum number of clients allowed to connect to the X server.  Acceptable values are 64, 128, 256 or 512.

       Option "NoPM"  "boolean"
              Disables something to do with power management events.  Default: PM enabled on platforms that support it.

       Option "Xinerama"  "boolean"
              enable or disable XINERAMA extension.  Default is disabled.

       Option "IndirectGLX" "boolean"
              enable or disable indirect GLX contexts. Indirect GLX contexts are disabled by default.

       Option "DRI2" "boolean"
              enable or disable DRI2. DRI2 is disabled by default.

       Option "GlxVisuals" "string"
              This option controls how many GLX visuals the GLX modules sets up.  The default value is typical, which will setup up a typical
              subset of the GLXFBConfigs provided by the driver as GLX visuals.  Other options are minimal, which will set up the minimal set
              allowed by the GLX specification and all which will setup GLX visuals for all GLXFBConfigs.

       Option "UseDefaultFontPath" "boolean"
              Include  the  default  font  path  even if other paths are specified in xorg.conf. If enabled, other font paths are included as
              well. Enabled by default.

       Option "IgnoreABI" "boolean"
              Allow modules built for a different, potentially incompatible version of the X server to load. Disabled by default.

       Option "AutoAddDevices" "boolean"
              If this option is disabled, then no devices will be added from the HAL or udev backends. Enabled by default.

       Option "AutoEnableDevices" "boolean"
              If this option is disabled, then the devices will be added (and the DevicePresenceNotify event sent),  but  not  enabled,  thus
              leaving policy up to the client.  Enabled by default.

       Option "AutoAddGPU" "boolean"
              If  this  option is disabled, then no GPU devices will be added from the udev backend. Enabled by default. (May need to be dis‐
              abled to setup Xinerama).

       Option "AutoBindGPU"  "boolean"
              If enabled then secondary GPUs will be automatically set up as output-sinks and offload-sources.  Making  e.g.  laptop  outputs
              connected  only  to  the  secondary  GPU  directly available for use without needing to run "xrandr --setprovideroutputsource".
              Enabled by default.

       Option "Log" "string"
              This option controls whether the log is flushed and/or synced to disk after each message.  Possible values are flush  or  sync.
              Unset by default.

MODULE SECTION
       The  Module  section  is  used to specify which Xorg server modules should be loaded.  This section is ignored when the Xorg server is
       built in static form.  The type of modules normally loaded in this section are Xorg server extension modules.  Most other module types
       are  loaded  automatically  when they are needed via other mechanisms.  The Module section is optional, as are all of the entries that
       may be specified in it.

       Entries in this section may be in two forms.  The first and most commonly used form is  an  entry  that  uses  the  Load  keyword,  as
       described here:

       Load  "modulename"
              This  instructs  the  server to load the module called modulename.  The module name given should be the module's standard name,
              not the module file name.  The standard name is case-sensitive, and does not include the “lib” or “cyg” prefixes, or the  “.so”
              or “.dll” suffixes.

              Example: the DRI extension module can be loaded with the following entry:

                  Load "dri"

       Disable  "modulename"
              This instructs the server to not load the module called modulename.  Some modules are loaded by default in the server, and this
              overrides that default. If a Load instruction is given for the same module, it overrides the Disable instruction and the module
              is  loaded. The module name given should be the module's standard name, not the module file name. As with the Load instruction,
              the standard name is case-sensitive, and does not include the "lib" prefix, or the ".a", ".o", or ".so" suffixes.

       The second form of entry is a SubSection, with the subsection name being the module name, and the contents  of  the  SubSection  being
       Options that are passed to the module when it is loaded.

       Example:  the  extmod module (which contains a miscellaneous group of server extensions) can be loaded, with the XFree86-DGA extension
       disabled by using the following entry:

           SubSection "extmod"
              Option  "omit XFree86-DGA"
           EndSubSection

       Modules are searched for in each directory specified in the ModulePath search path, and in the drivers, extensions,  input,  internal,
       and  multimedia subdirectories of each of those directories.  In addition to this, operating system specific subdirectories of all the
       above are searched first if they exist.

       To see what extension modules are available, check the extensions subdirectory under:

           /usr/lib/xorg/modules

       The “extmod”, “dbe”, “dri”, “dri2”, “glx”, and “record” extension modules are loaded automatically, if they are present,  unless  dis‐
       abled  with  "Disable" entries.  It is recommended that at very least the “extmod” extension module be loaded.  If it isn't, some com‐
       monly used server extensions (like the SHAPE extension) will not be available.

EXTENSIONS SECTION
       The Extensions section is used to specify which X11 protocol extensions should be enabled or  disabled.   The  Extensions  section  is
       optional, as are all of the entries that may be specified in it.

       Entries  in  this section are listed as Option statements with the name of the extension as the first argument, and a boolean value as
       the second.  The extension name is case-sensitive, and matches the form shown in the output of "Xorg -extension ?".

              Example: the MIT-SHM extension can be disabled with the following entry:

                  Section "Extensions"
                      Option "MIT-SHM" "Disable"
                  EndSection

INPUTDEVICE SECTION
       The config file may have multiple InputDevice sections.  Recent X servers employ HAL or udev backends for input device enumeration and
       input hotplugging. It is usually not necessary to provide InputDevice sections in the xorg.conf if hotplugging is in use (i.e. AutoAd‐
       dDevices is enabled). If hotplugging is enabled, InputDevice sections using the mouse, kbd and vmmouse driver will be ignored.

       If hotplugging is disabled, there will normally be at least two: one for the core (primary) keyboard and one for the core pointer.  If
       either  of  these two is missing, a default configuration for the missing ones will be used. In the absence of an explicitly specified
       core input device, the first InputDevice marked as CorePointer (or CoreKeyboard) is used.  If there  is  no  match  there,  the  first
       InputDevice that uses the “mouse” (or “kbd”) driver is used.  The final fallback is to use built-in default configurations.  Currently
       the default configuration may not work as expected on all platforms.

       InputDevice sections have the following format:

           Section "InputDevice"
               Identifier "name"
               Driver     "inputdriver"
               options
               ...
           EndSection

       The Identifier and Driver entries are required in all InputDevice sections.  All other entries are optional.

       The Identifier entry specifies the unique name for this input device.  The Driver entry specifies the name of the driver  to  use  for
       this  input  device.  When using the loadable server, the input driver module "inputdriver" will be loaded for each active InputDevice
       section.  An InputDevice section is considered active if it is referenced by an active ServerLayout section, if it  is  referenced  by
       the  -keyboard or -pointer command line options, or if it is selected implicitly as the core pointer or keyboard device in the absence
       of such explicit references.  The most commonly used input drivers are evdev(4) on Linux systems, and kbd(4) and mousedrv(4) on  other
       platforms.

       InputDevice  sections  recognise  some  driver-independent  Options, which are described here.  See the individual input driver manual
       pages for a description of the device-specific options.

       Option "AutoServerLayout"  "boolean"
              Always add the device to the ServerLayout section used by this instance of the server. This affects implied layouts as well  as
              explicit layouts specified in the configuration and/or on the command line.

       Option "CorePointer"
              Deprecated, see Floating

       Option "CoreKeyboard"
              Deprecated, see Floating

       Option "AlwaysCore"  "boolean"
              Deprecated, see Floating

       Option "SendCoreEvents"  "boolean"
              Deprecated, see Floating

       Option "Floating"  "boolean"
              When enabled, the input device is set up floating and does not report events through any master device or control a cursor. The
              device is only available to clients using the X Input Extension API. This option is disabled by  default.   The  options  Core‐
              Pointer, CoreKeyboard, AlwaysCore, and SendCoreEvents, are the inverse of option Floating (i.e.  SendCoreEvents "on" is equiva‐
              lent to Floating "off" ).

              This option controls the startup behavior only, a device may be reattached or set floating at runtime.

       Option "TransformationMatrix" "a b c d e f g h i"
              Specifies the 3x3 transformation matrix for absolute input devices. The input device will be bound to the  area  given  in  the
              matrix.   In  most configurations, "a" and "e" specify the width and height of the area the device is bound to, and "c" and "f"
              specify the x and y offset of the area.  The value range is 0 to 1, where 1 represents the width or height of all root  windows
              together, 0.5 represents half the area, etc. The values represent a 3x3 matrix, with the first, second and third group of three
              values representing the first, second and third row of the matrix, respectively.  The identity matrix is "1 0 0 0 1 0 0 0 1".

   POINTER ACCELERATION
       For pointing devices, the following options control how the pointer is accelerated or decelerated  with  respect  to  physical  device
       motion. Most of these can be adjusted at runtime, see the xinput(1) man page for details. Only the most important acceleration options
       are discussed here.

       Option "AccelerationProfile"  "integer"
              Select the profile. In layman's terms, the profile constitutes the "feeling" of the acceleration. More formally, it defines how
              the  transfer function (actual acceleration as a function of current device velocity and acceleration controls) is constructed.
              This is mainly a matter of personal preference.

              0      classic (mostly compatible)
             -1      none (only constant deceleration is applied)
              1      device-dependent
              2      polynomial (polynomial function)
              3      smooth linear (soft knee, then linear)
              4      simple (normal when slow, otherwise accelerated)
              5      power (power function)
              6      linear (more speed, more acceleration)
              7      limited (like linear, but maxes out at threshold)

       Option "ConstantDeceleration"  "real"
              Makes the pointer go deceleration times slower than normal. Most useful for high-resolution devices. A value between  0  and  1
              will speed up the pointer.

       Option "AdaptiveDeceleration"  "real"
              Allows to actually decelerate the pointer when going slow. At most, it will be adaptive deceleration times slower. Enables pre‐
              cise pointer placement without sacrificing speed.

       Option "AccelerationScheme"  "string"
              Selects the scheme, which is the underlying algorithm.

              predictable   default algorithm (behaving more predictable)
              lightweight   old acceleration code (as specified in the X protocol spec)
              none          no acceleration or deceleration

       Option "AccelerationNumerator"  "integer"

       Option "AccelerationDenominator"  "integer"
              Set numerator and denominator of the acceleration factor. The acceleration factor is a rational which, together with threshold,
              can be used to tweak profiles to suit the users needs. The simple and limited profiles use it directly (i.e. they accelerate by
              the factor), for other profiles it should hold that a higher acceleration factor leads to a faster  pointer.  Typically,  1  is
              unaccelerated and values up to 5 are sensible.

       Option "AccelerationThreshold"  "integer"
              Set  the  threshold,  which is roughly the velocity (usually device units per 10 ms) required for acceleration to become effec‐
              tive. The precise effect varies with the profile however.

INPUTCLASS SECTION
       The config file may have multiple InputClass sections.  These sections are optional and are used to provide configuration for a  class
       of  input devices as they are automatically added. An input device can match more than one InputClass section. Each class can override
       settings from a previous class, so it is best to arrange the sections with the most generic matches first.

       InputClass sections have the following format:

           Section "InputClass"
               Identifier  "name"
               entries
               ...
               options
               ...
           EndSection

       The Identifier entry is required in all InputClass sections.  All other entries are optional.

       The Identifier entry specifies the unique name for this input class.  The Driver entry specifies the name of the  driver  to  use  for
       this  input  device.   After all classes have been examined, the "inputdriver" module from the first Driver entry will be enabled when
       using the loadable server.

       When an input device is automatically added, its characteristics are checked against all InputClass sections. Each section can contain
       optional  entries to narrow the match of the class. If none of the optional entries appear, the InputClass section is generic and will
       match any input device. If more than one of these entries appear, they all must match for the configuration to apply.

       There are two types of match entries used in InputClass sections. The first allows various tokens to be matched against attributes  of
       the  device. An entry can be constructed to match attributes from different devices by separating arguments with a '|' character. Mul‐
       tiple entries of the same type may be supplied to add multiple matching conditions on the same attribute. For example:

           Section "InputClass"
               Identifier   "My Class"
               # product string must contain example and
               # either gizmo or gadget
               MatchProduct "example"
               MatchProduct "gizmo|gadget"
               NoMatchDriver "drivername"
               ...
           EndSection

       MatchProduct  "matchproduct"
              This entry can be used to check if the substring "matchproduct" occurs in the device's product name.

       MatchVendor  "matchvendor"
              This entry can be used to check if the substring "matchvendor" occurs in the device's vendor name.

       MatchDevicePath "matchdevice"
              This entry can be used to check if the device file matches the "matchdevice" pathname pattern.

       MatchOS "matchos"
              This entry can be used to check if the operating system matches the case-insensitive "matchos" string. This entry is only  sup‐
              ported on platforms providing the uname(2) system call.

       MatchPnPID "matchpnp"
              The device's Plug and Play (PnP) ID can be checked against the "matchpnp" shell wildcard pattern.

       MatchUSBID "matchusb"
              The  device's USB ID can be checked against the "matchusb" shell wildcard pattern. The ID is constructed as lowercase hexadeci‐
              mal numbers separated by a ':'. This is the same format as the lsusb(8) program.

       MatchDriver "matchdriver"
              Check the case-sensitive string "matchdriver" against the currently configured driver of the device. Ordering of sections using
              this  entry  is important since it will not match unless the driver has been set by the config backend or a previous InputClass
              section.

       MatchTag "matchtag"
              This entry can be used to check if tags assigned by the config backend matches the "matchtag" pattern. A match is found  if  at
              least one of the tags given in "matchtag" matches at least one of the tags assigned by the backend.

       MatchLayout "matchlayout"
              Check the case-sensitive string "matchlayout" against the currently active ServerLayout section. The empty string "" matches an
              implicit layout which appears if no named ServerLayout sections have been found.

       The above directives have equivalents for negative matching with  the  NoMatchProduct,  NoMatchVendor,  NoMatchDevicePath,  NoMatchOS,
       NoMatchPnPID,  NoMatchUSBID, NoMatchDriver, NoMatchTag, and NoMatchLayout directives. These NoMatch directives match if the subsequent
       match is not met by the device.

       The second type of entry is used to match device types. These entries take a boolean argument similar to Option entries.

       MatchIsKeyboard     "bool"

       MatchIsPointer      "bool"

       MatchIsJoystick     "bool"

       MatchIsTablet       "bool"

       MatchIsTabletPad    "bool"

       MatchIsTouchpad     "bool"

       MatchIsTouchscreen  "bool"

       When an input device has been matched to the InputClass section, any Option entries are applied to the device. One InputClass specific
       Option is recognized. See the InputDevice section above for a description of the remaining Option entries.

       Option "Ignore" "boolean"
              This  optional entry specifies that the device should be ignored entirely, and not added to the server. This can be useful when
              the device is handled by another program and no X events should be generated.

OUTPUTCLASS SECTION
       The config file may have multiple OutputClass sections.  These sections are optional and are used to provide configuration for a class
       of  output  devices  as  they  are automatically added.  An output device can match more than one OutputClass section.  Each class can
       override settings from a previous class, so it is best to arrange the sections with the most generic matches first.

       OutputClass sections have the following format:

           Section "OutputClass"
               Identifier  "name"
               entries
               ...
           EndSection

       The Identifier entry is required in all OutputClass sections.  All other entries are optional.

       The Identifier entry specifies the unique name for this output class.  The Driver entry specifies the name of the driver  to  use  for
       this  output device.  After all classes have been examined, the "outputdriver" module from the first Driver entry will be enabled when
       using the loadable server.

       When an output device is automatically added, its characteristics are checked against all OutputClass sections.  Each section can con‐
       tain  optional  entries  to narrow the match of the class.  If none of the optional entries appear, the OutputClass section is generic
       and will match any output device.  If more than one of these entries appear, they all must match for the configuration to apply.

       The following list of tokens can be matched against attributes of the device.  An entry can be constructed to  match  attributes  from
       different devices by separating arguments with a '|' character.

       For example:

           Section "OutputClass"
               Identifier   "My Class"
               # kernel driver must be either foo or bar
               MatchDriver "foo|bar"
               ...
           EndSection

       MatchDriver "matchdriver"
              Check the case-sensitive string "matchdriver" against the kernel driver of the device.

       When  an output device has been matched to the OutputClass section, any Option entries are applied to the device. One OutputClass spe‐
       cific Option is recognized. See the Device section below for a description of the remaining Option entries.

       Option "PrimaryGPU" "boolean"
              This option specifies that the matched device should be treated as the primary GPU, replacing the selection of the GPU used  as
              output  by  the firmware. If multiple output devices match an OutputClass section with the PrimaryGPU option set, the first one
              enumerated becomes the primary GPU.

       A OutputClass Section may contain ModulePath entries. When an output device matches an OutputClass section, any ModulePath entries  in
       that  OutputClass  are  pre-pended  to  the search path for loadable Xorg server modules. See ModulePath in the Files section for more
       info.

DEVICE SECTION
       The config file may have multiple Device sections.  There must be at least one, for the video card being used.

       Device sections have the following format:

           Section "Device"
               Identifier "name"
               Driver     "driver"
               entries
               ...
           EndSection

       The Identifier and Driver entries are required in all Device sections.  All other entries are optional.

       The Identifier entry specifies the unique name for this graphics device.  The Driver entry specifies the name of the driver to use for
       this  graphics  device.   When using the loadable server, the driver module "driver" will be loaded for each active Device section.  A
       Device section is considered active if it is referenced by an active Screen section.

       Device sections recognise some driver-independent entries and Options, which are described here.  Not all drivers make  use  of  these
       driver-independent  entries,  and  many  of those that do don't require them to be specified because the information is auto-detected.
       See the individual graphics driver manual pages for further information about this, and  for  a  description  of  the  device-specific
       options.  Note that most of the Options listed here (but not the other entries) may be specified in the Screen section instead of here
       in the Device section.

       BusID  "bus-id"
              This  specifies  the  bus  location  of  the  graphics  card.   For  PCI/AGP  cards,   the   bus-id   string   has   the   form
              PCI:bus@domain:device:function  (e.g.,  “PCI:1@0:0:0” might be appropriate for an AGP card). The "@domain" part can be left out
              for PCI domain 0. This field is usually optional in single-head configurations when using the primary graphics card.  In multi-
              head configurations, or when using a secondary graphics card in a single-head configuration, this entry is mandatory.  Its main
              purpose is to make an unambiguous connection between the device section and the hardware it is representing.  This  information
              can usually be found by running the pciaccess tool scanpci.

       Screen  number
              This  option  is  mandatory for cards where a single PCI entity can drive more than one display (i.e., multiple CRTCs sharing a
              single graphics accelerator and video memory).  One Device section is required for each head,  and  this  parameter  determines
              which  head  each of the Device sections applies to.  The legal values of number range from 0 to one less than the total number
              of heads per entity.  Most drivers require that the primary screen (0) be present.

       Chipset  "chipset"
              This usually optional entry specifies the chipset used on the graphics board.  In most cases this entry is not required because
              the  drivers  will probe the hardware to determine the chipset type.  Don't specify it unless the driver-specific documentation
              recommends that you do.

       Ramdac  "ramdac-type"
              This optional entry specifies the type of RAMDAC used on the graphics board.  This is only used by a few of the drivers, and in
              most  cases  it is not required because the drivers will probe the hardware to determine the RAMDAC type where possible.  Don't
              specify it unless the driver-specific documentation recommends that you do.

       DacSpeed  speed

       DacSpeed  speed-8 speed-16 speed-24 speed-32
              This optional entry specifies the RAMDAC speed rating (which is usually printed on the RAMDAC chip).   The  speed  is  in  MHz.
              When  one  value is given, it applies to all framebuffer pixel sizes.  When multiple values are given, they apply to the frame‐
              buffer pixel sizes 8, 16, 24 and 32 respectively.  This is not used by many drivers, and only needs to be  specified  when  the
              speed  rating of the RAMDAC is different from the defaults built in to driver, or when the driver can't auto-detect the correct
              defaults.  Don't specify it unless the driver-specific documentation recommends that you do.

       Clocks  clock ...
              specifies the pixel that are on your graphics board.  The clocks are in MHz, and may be specified as a floating  point  number.
              The  value is stored internally to the nearest kHz.  The ordering of the clocks is important.  It must match the order in which
              they are selected on the graphics board.  Multiple Clocks lines may be specified, and each is concatenated to  form  the  list.
              Most  drivers do not use this entry, and it is only required for some older boards with non-programmable clocks.  Don't specify
              this entry unless the driver-specific documentation explicitly recommends that you do.

       ClockChip  "clockchip-type"
              This optional entry is used to specify the clock chip type on graphics boards which have a programmable clock generator.   Only
              a few Xorg drivers support programmable clock chips.  For details, see the appropriate driver manual page.

       VideoRam  mem
              This optional entry specifies the amount of video ram that is installed on the graphics board.  This is measured in kBytes.  In
              most cases this is not required because the Xorg server probes the graphics board to determine this quantity.  The  driver-spe‐
              cific documentation should indicate when it might be needed.

       MemBase  baseaddress
              This  optional  entry  specifies  the memory base address of a graphics board's linear frame buffer.  This entry is not used by
              many drivers, and it should only be specified if the driver-specific documentation recommends it.

       IOBase  baseaddress
              This optional entry specifies the IO base address.  This entry is not used by many drivers, and it should only be specified  if
              the driver-specific documentation recommends it.

       ChipID  id
              This optional entry specifies a numerical ID representing the chip type.  For PCI cards, it is usually the device ID.  This can
              be used to override the auto-detection, but that should only be done when the driver-specific documentation recommends it.

       ChipRev  rev
              This optional entry specifies the chip revision number.  This can be used to override the auto-detection, but that should  only
              be done when the driver-specific documentation recommends it.

       MatchSeat  seat-id
              Only apply this Device section if X server was started with -seat seat-id option.

       Option "ModeDebug" "boolean"
              Enable printing of additional debugging information about modesetting to the server log.

       Option "PreferCloneMode" "boolean"
              If enabled, bring up monitors of a screen in clone mode instead of horizontal extended layout by default. (Defaults to off; the
              video driver can change the default value, but this option can always override it)

       Options
              Option flags may be specified in the Device sections.  These include driver-specific options  and  driver-independent  options.
              The former are described in the driver-specific documentation.  Some of the latter are described below in the section about the
              Screen section, and they may also be included here.

VIDEOADAPTOR SECTION
       Nobody wants to say how this works.  Maybe nobody knows ...

MONITOR SECTION
       The config file may have multiple Monitor sections.  There should normally be at least one, for the monitor being used, but a  default
       configuration will be created when one isn't specified.

       Monitor sections have the following format:

           Section "Monitor"
               Identifier "name"
               entries
               ...
           EndSection

       The only mandatory entry in a Monitor section is the Identifier entry.

       The  Identifier  entry  specifies  the unique name for this monitor.  The Monitor section may be used to provide information about the
       specifications of the monitor, monitor-specific Options, and information about the video modes to use with the monitor.

       With RandR 1.2-enabled drivers, monitor sections may be tied to specific outputs of the video card.  Using  the  name  of  the  output
       defined  by  the  video  driver plus the identifier of a monitor section, one associates a monitor section with an output by adding an
       option to the Device section in the following format:

       Option "Monitor-outputname" "monitorsection"

       (for example, Option "Monitor-VGA" "VGA monitor" for a VGA output)

       In the absence of specific association of monitor sections to outputs, if a monitor section is present the server  will  associate  it
       with an output to preserve compatibility for previous single-head configurations.

       Specifying  video  modes is optional because the server will use the DDC or other information provided by the monitor to automatically
       configure the list of modes available.  When modes are specified explicitly in the Monitor section (with the Mode, ModeLine,  or  Use‐
       Modes keywords), built-in modes with the same names are not included.  Built-in modes with different names are, however, still implic‐
       itly included, when they meet the requirements of the monitor.

       The entries that may be used in Monitor sections are described below.

       VendorName  "vendor"
              This optional entry specifies the monitor's manufacturer.

       ModelName  "model"
              This optional entry specifies the monitor's model.

       HorizSync  horizsync-range
              gives the range(s) of horizontal sync frequencies supported by the monitor.  horizsync-range may be a comma separated  list  of
              either discrete values or ranges of values.  A range of values is two values separated by a dash.  By default the values are in
              units of kHz.  They may be specified in MHz or Hz if MHz or Hz is added to the end of the line.  The data given here is used by
              the Xorg server to determine if video modes are within the specifications of the monitor.  This information should be available
              in the monitor's handbook.  If this entry is omitted, a default range of 28-33kHz is used.

       VertRefresh  vertrefresh-range
              gives the range(s) of vertical refresh frequencies supported by the monitor.  vertrefresh-range may be a comma  separated  list
              of either discrete values or ranges of values.  A range of values is two values separated by a dash.  By default the values are
              in units of Hz.  They may be specified in MHz or kHz if MHz or kHz is added to the end of the line.  The  data  given  here  is
              used  by  the Xorg server to determine if video modes are within the specifications of the monitor.  This information should be
              available in the monitor's handbook.  If this entry is omitted, a default range of 43-72Hz is used.

       DisplaySize  width height
              This optional entry gives the width and height, in millimetres, of the picture area of the monitor.  If given this is  used  to
              calculate the horizontal and vertical pitch (DPI) of the screen.

       Gamma  gamma-value

       Gamma  red-gamma green-gamma blue-gamma
              This  is  an  optional entry that can be used to specify the gamma correction for the monitor.  It may be specified as either a
              single value or as three separate RGB values.  The values should be in the range 0.1 to 10.0, and the default is 1.0.  Not  all
              drivers are capable of using this information.

       UseModes  "modesection-id"
              Include  the  set of modes listed in the Modes section called modesection-id.  This makes all of the modes defined in that sec‐
              tion available for use by this monitor.

       Mode  "name"
              This is an optional multi-line entry that can be used to provide definitions for video modes for the monitor.   In  most  cases
              this  isn't necessary because the built-in set of VESA standard modes will be sufficient.  The Mode keyword indicates the start
              of a multi-line video mode description.  The mode description is terminated with the EndMode  keyword.   The  mode  description
              consists of the following entries:

              DotClock  clock
                  is the dot (pixel) clock rate to be used for the mode.

              HTimings  hdisp hsyncstart hsyncend htotal
                  specifies the horizontal timings for the mode.

              VTimings  vdisp vsyncstart vsyncend vtotal
                  specifies the vertical timings for the mode.

              Flags  "flag" ...
                  specifies  an  optional set of mode flags, each of which is a separate string in double quotes.  "Interlace" indicates that
                  the mode is interlaced.  "DoubleScan" indicates a mode where each scanline is doubled.  "+HSync" and "-HSync" can  be  used
                  to  select the polarity of the HSync signal.  "+VSync" and "-VSync" can be used to select the polarity of the VSync signal.
                  "Composite" can be used to specify composite sync on hardware where this is supported.   Additionally,  on  some  hardware,
                  "+CSync" and "-CSync" may be used to select the composite sync polarity.

              HSkew  hskew
                  specifies  the  number of pixels (towards the right edge of the screen) by which the display enable signal is to be skewed.
                  Not all drivers use this information.  This option might become necessary to override the default  value  supplied  by  the
                  server  (if  any).   “Roving” horizontal lines indicate this value needs to be increased.  If the last few pixels on a scan
                  line appear on the left of the screen, this value should be decreased.

              VScan  vscan
                  specifies the number of times each scanline is painted on the screen.  Not all drivers use this information.   Values  less
                  than 1 are treated as 1, which is the default.  Generally, the "DoubleScan" Flag mentioned above doubles this value.

       ModeLine  "name" mode-description
              This  entry  is a more compact version of the Mode entry, and it also can be used to specify video modes for the monitor.  This
              is a single line format for specifying video modes.  In most cases this isn't necessary because the built-in set of VESA  stan‐
              dard modes will be sufficient.

              The mode-description is in four sections, the first three of which are mandatory.  The first is the dot (pixel) clock.  This is
              a single number specifying the pixel clock rate for the mode in MHz.  The second section is a list of four  numbers  specifying
              the  horizontal timings.  These numbers are the hdisp, hsyncstart, hsyncend, and htotal values.  The third section is a list of
              four numbers specifying the vertical timings.  These numbers are the vdisp, vsyncstart, vsyncend, and vtotal values.  The final
              section  is  a  list  of  flags specifying other characteristics of the mode.  Interlace indicates that the mode is interlaced.
              DoubleScan indicates a mode where each scanline is doubled.  +HSync and -HSync can be used to select the polarity of the  HSync
              signal.   +VSync and -VSync can be used to select the polarity of the VSync signal.  Composite can be used to specify composite
              sync on hardware where this is supported.  Additionally, on some hardware, +CSync and -CSync may be used to select the  compos‐
              ite sync polarity.  The HSkew and VScan options mentioned above in the Mode entry description can also be used here.

       Option "DPMS" "bool"
              This  option controls whether the server should enable the DPMS extension for power management for this screen.  The default is
              to enable the extension.

       Option "SyncOnGreen" "bool"
              This option controls whether the video card should drive the sync signal on the green color pin.  Not all  cards  support  this
              option, and most monitors do not require it.  The default is off.

       Option "Primary" "bool"
              This optional entry specifies that the monitor should be treated as the primary monitor. (RandR 1.2-supporting drivers only)

       Option "PreferredMode" "name"
              This  optional entry specifies a mode to be marked as the preferred initial mode of the monitor.  (RandR 1.2-supporting drivers
              only)

       Option "ZoomModes" "name name ..."
              This optional entry specifies modes to be marked as zoom modes.  It is possible to switch to the next  and  previous  mode  via
              Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus.  All these keypad available modes are selected from the screen mode list.  This
              list is a copy of the compatibility output monitor mode list.  Since this output is the output connected to the lowest dot-area
              monitor,  as determined from its largest size mode, that monitor defines the available zoom modes.  (RandR 1.2-supporting driv‐
              ers only)

       Option "Position" "x y"
              This optional entry specifies the position of the monitor within the X screen.  (RandR 1.2-supporting drivers only)

       Option "LeftOf" "output"
              This optional entry specifies that the monitor should be positioned to the left of the output (not monitor) of the given  name.
              (RandR 1.2-supporting drivers only)

       Option "RightOf" "output"
              This optional entry specifies that the monitor should be positioned to the right of the output (not monitor) of the given name.
              (RandR 1.2-supporting drivers only)

       Option "Above" "output"
              This optional entry specifies that the monitor should be positioned above the output (not monitor) of the given  name.   (RandR
              1.2-supporting drivers only)

       Option "Below" "output"
              This  optional  entry specifies that the monitor should be positioned below the output (not monitor) of the given name.  (RandR
              1.2-supporting drivers only)

       Option "Enable" "bool"
              This optional entry specifies whether the monitor should be turned on at startup.  By  default,  the  server  will  attempt  to
              enable all connected monitors.  (RandR 1.2-supporting drivers only)

       Option "DefaultModes" "bool"
              This  optional entry specifies whether the server should add supported default modes to the list of modes offered on this moni‐
              tor. By default, the server will add default modes; you should only disable this if you can guarantee that EDID will be  avail‐
              able at all times, or if you have added custom modelines which the server can use.  (RandR 1.2-supporting drivers only)

       Option "MinClock" "frequency"
              This optional entry specifies the minimum dot clock, in kHz, that is supported by the monitor.

       Option "MaxClock" "frequency"
              This optional entry specifies the maximum dot clock, in kHz, that is supported by the monitor.

       Option "Ignore" "bool"
              This  optional  entry specifies that the monitor should be ignored entirely, and not reported through RandR.  This is useful if
              the hardware reports the presence of outputs that don't exist.  (RandR 1.2-supporting drivers only)

       Option "Rotate" "rotation"
              This optional entry specifies the initial rotation of the given monitor.  Valid  values  for  rotation  are  "normal",  "left",
              "right", and "inverted".  (RandR 1.2-supporting drivers only)

MODES SECTION
       The config file may have multiple Modes sections, or none.  These sections provide a way of defining sets of video modes independently
       of the Monitor sections.  Monitor sections may include the definitions provided in these sections by using the UseModes  keyword.   In
       most cases the Modes sections are not necessary because the built-in set of VESA standard modes will be sufficient.

       Modes sections have the following format:

           Section "Modes"
               Identifier "name"
               entries
               ...
           EndSection

       The  Identifier  entry specifies the unique name for this set of mode descriptions.  The other entries permitted in Modes sections are
       the Mode and ModeLine entries that are described above in the Monitor section.

SCREEN SECTION
       The config file may have multiple Screen sections.  There must be at least one, for the “screen” being used.   A  “screen”  represents
       the  binding  of a graphics device (Device section) and a monitor (Monitor section).  A Screen section is considered “active” if it is
       referenced by an active ServerLayout section or by the -screen command line option.  If neither of those is present, the first  Screen
       section found in the config file is considered the active one.

       Screen sections have the following format:

           Section "Screen"
               Identifier "name"
               Device     "devid"
               GPUDevice  "devid"
               Monitor    "monid"
               entries
               ...
               SubSection "Display"
                  entries
                  ...
               EndSubSection
               ...
           EndSection

       The Identifier entry is mandatory.  All others are optional.

       The Identifier entry specifies the unique name for this screen.  The Screen section provides information specific to the whole screen,
       including screen-specific Options.  In multi-head configurations, there will be multiple active Screen sections, one  for  each  head.
       The entries available for this section are:

       Device  "device-id"
              This  entry  specifies  the  Device section to be used for this screen.  When multiple graphics cards are present, this is what
              ties a specific card to a screen.  The device-id must match the Identifier of a Device section in the config file.

       GPUDevice  "device-id"
              This entry specifies the Device section to be used as a secondary GPU device for this screen.  When multiple graphics cards are
              present,  this is what ties a specific secondary card to a screen.  The device-id must match the Identifier of a Device section
              in the config file. This can be specified up to 4 times for a single screen.

       Monitor  "monitor-id"
              specifies which monitor description is to be used for this screen.  If a Monitor name is not specified, a default configuration
              is used.  Currently the default configuration may not function as expected on all platforms.

       VideoAdaptor  "xv-id"
              specifies an optional Xv video adaptor description to be used with this screen.

       DefaultDepth  depth
              specifies which color depth the server should use by default.  The -depth command line option can be used to override this.  If
              neither is specified, the default depth is driver-specific, but in most cases is 8.

       DefaultFbBpp  bpp
              specifies which framebuffer layout to use by default.  The -fbbpp command line option can be used to override  this.   In  most
              cases  the  driver will chose the best default value for this.  The only case where there is even a choice in this value is for
              depth 24, where some hardware supports both a packed 24 bit framebuffer layout and a sparse 32 bit framebuffer layout.

       MatchSeat  seat-id
              Only apply this Screen section if X server was started with -seat seat-id option.

       Options
              Various Option flags may be specified in the Screen section.  Some are driver-specific and are described in the driver documen‐
              tation.  Others are driver-independent, and will eventually be described here.

       Option "Accel"
              Enables  2D  hardware  acceleration.  This option is on by default, but it may be necessary to turn it off if there are bugs in
              the driver.  There are many options to disable specific accelerated operations, listed below.  Note that disabling an operation
              will have no effect if the operation is not accelerated (whether due to lack of support in the hardware or in the driver).

       Option "GlxVendorLibrary" "string"
              This  option  specifies  a space-separated list of OpenGL vendor libraries to use for the screen. This may be used to select an
              alternate implementation for development, debugging, or alternate feature sets.  Default: mesa.

       Option "InitPrimary" "boolean"
              Use the Int10 module to initialize the primary graphics card.  Normally, only secondary cards are soft-booted using  the  Int10
              module, as the primary card has already been initialized by the BIOS at boot time.  Default: false.

       Option "NoInt10" "boolean"
              Disables  the  Int10  module,  a  module  that uses the int10 call to the BIOS of the graphics card to initialize it.  Default:
              false.

       Each Screen section may optionally contain one or more Display subsections.  Those subsections provide depth/fbbpp specific configura‐
       tion information, and the one chosen depends on the depth and/or fbbpp that is being used for the screen.  The Display subsection for‐
       mat is described in the section below.

DISPLAY SUBSECTION
       Each Screen section may have multiple Display subsections.  The “active” Display subsection is the first that matches the depth and/or
       fbbpp  values  being  used, or failing that, the first that has neither a depth or fbbpp value specified.  The Display subsections are
       optional.  When there isn't one that matches the depth and/or fbbpp values being used, all the parameters that can be  specified  here
       fall back to their defaults.

       Display subsections have the following format:

               SubSection "Display"
                   Depth  depth
                   entries
                   ...
               EndSubSection

       Depth  depth
              This  entry  specifies what colour depth the Display subsection is to be used for.  This entry is usually specified, but it may
              be omitted to create a match-all Display subsection or when wishing to match only against the FbBpp parameter.   The  range  of
              depth values that are allowed depends on the driver.  Most drivers support 8, 15, 16 and 24.  Some also support 1 and/or 4, and
              some may support other values (like 30).  Note: depth means the number of bits in a pixel that are actually used  to  determine
              the  pixel  colour.  32 is not a valid depth value.  Most hardware that uses 32 bits per pixel only uses 24 of them to hold the
              colour information, which means that the colour depth is 24, not 32.

       FbBpp  bpp
              This entry specifies the framebuffer format this Display subsection is to be used for.  This entry is only needed when  provid‐
              ing  depth 24 configurations that allow a choice between a 24 bpp packed framebuffer format and a 32bpp sparse framebuffer for‐
              mat.  In most cases this entry should not be used.

       Weight  red-weight green-weight blue-weight
              This optional entry specifies the relative RGB weighting to be used for a screen is being used at depth  16  for  drivers  that
              allow multiple formats.  This may also be specified from the command line with the -weight option (see Xorg(1)).

       Virtual  xdim ydim
              This  optional  entry  specifies  the virtual screen resolution to be used.  xdim must be a multiple of either 8 or 16 for most
              drivers, and a multiple of 32 when running in monochrome mode.  The given value will be rounded down if this is not  the  case.
              Video  modes  which  are  too large for the specified virtual size will be rejected.  If this entry is not present, the virtual
              screen resolution will be set to accommodate all the valid video modes given in the Modes entry.  Some drivers/hardware  combi‐
              nations do not support virtual screens.  Refer to the appropriate driver-specific documentation for details.

       ViewPort  x0 y0
              This  optional  entry sets the upper left corner of the initial display.  This is only relevant when the virtual screen resolu‐
              tion is different from the resolution of the initial video mode.  If this entry is not given, then the initial display will  be
              centered in the virtual display area.

       Modes  "mode-name" ...
              This  optional  entry  specifies the list of video modes to use.  Each mode-name specified must be in double quotes.  They must
              correspond to those specified or referenced in the appropriate Monitor section (including implicitly referenced  built-in  VESA
              standard  modes).   The server will delete modes from this list which don't satisfy various requirements.  The first valid mode
              in this list will be the default display mode for startup.  The list of valid modes is converted  internally  into  a  circular
              list.  It is possible to switch to the next mode with Ctrl+Alt+Keypad-Plus and to the previous mode with Ctrl+Alt+Keypad-Minus.
              When this entry is omitted, the valid modes referenced by the appropriate Monitor section will be used.  If the Monitor section
              contains no modes, then the selection will be taken from the built-in VESA standard modes.

       Visual  "visual-name"
              This  optional  entry  sets the default root visual type.  This may also be specified from the command line (see the Xserver(1)
              man page).  The visual types available for depth 8 are (default is PseudoColor):

                  StaticGray
                  GrayScale
                  StaticColor
                  PseudoColor
                  TrueColor
                  DirectColor

              The visual type available for the depths 15, 16 and 24 are (default is TrueColor):

                  TrueColor
                  DirectColor

              Not all drivers support DirectColor at these depths.

              The visual types available for the depth 4 are (default is StaticColor):

                  StaticGray
                  GrayScale
                  StaticColor
                  PseudoColor

              The visual type available for the depth 1 (monochrome) is StaticGray.

       Black  red green blue
              This optional entry allows the “black” colour to be specified.  This is only supported at depth 1.  The default is black.

       White  red green blue
              This optional entry allows the “white” colour to be specified.  This is only supported at depth 1.  The default is white.

       Options
              Option flags may be specified in the Display subsections.  These may include  driver-specific  options  and  driver-independent
              options.  The former are described in the driver-specific documentation.  Some of the latter are described above in the section
              about the Screen section, and they may also be included here.

SERVERLAYOUT SECTION
       The config file may have multiple ServerLayout sections.  A “server layout” represents the binding of one or more screens (Screen sec‐
       tions)  and  one or more input devices (InputDevice sections) to form a complete configuration.  In multi-head configurations, it also
       specifies the relative layout of the heads.  A ServerLayout section is considered “active” if it is referenced by the -layout  command
       line  option or by an Option "DefaultServerLayout" entry in the ServerFlags section (the former takes precedence over the latter).  If
       those options are not used, the first ServerLayout section found in the config file is considered the active one.  If no  ServerLayout
       sections  are present, the single active screen and two active (core) input devices are selected as described in the relevant sections
       above.

       ServerLayout sections have the following format:

           Section "ServerLayout"
               Identifier   "name"
               Screen       "screen-id"
               ...
               InputDevice  "idev-id"
               ...
               options
               ...
           EndSection

       Each ServerLayout section must have an Identifier entry and at least one Screen entry.

       The Identifier entry specifies the unique name for this server layout.  The ServerLayout section provides information specific to  the
       whole  session,  including  session-specific Options.  The ServerFlags options (described above) may be specified here, and ones given
       here override those given in the ServerFlags section.

       The entries that may be used in this section are described here.

       Screen  screen-num "screen-id" position-information
              One of these entries must be given for each screen being used in a session.  The screen-id field is  mandatory,  and  specifies
              the  Screen  section  being  referenced.   The  screen-num  field  is optional, and may be used to specify the screen number in
              multi-head configurations.  When this field is omitted, the screens will be numbered in the order that they are listed in.  The
              numbering  starts from 0, and must be consecutive.  The position-information field describes the way multiple screens are posi‐
              tioned.  There are a number of different ways that this information can be provided:

              x y

              Absolute  x y
                  These both specify that the upper left corner's coordinates are (x,y).  The Absolute keyword is optional.  Some older  ver‐
                  sions  of  XFree86  (4.2  and earlier) don't recognise the Absolute keyword, so it's safest to just specify the coordinates
                  without it.

              RightOf   "screen-id"

              LeftOf    "screen-id"

              Above     "screen-id"

              Below     "screen-id"

              Relative  "screen-id" x y
                  These give the screen's location relative to another screen.  The first four position the screen immediately to the  right,
                  left, above or below the other screen.  When positioning to the right or left, the top edges are aligned.  When positioning
                  above or below, the left edges are aligned.  The Relative form specifies the offset of the screen's origin (upper left cor‐
                  ner) relative to the origin of another screen.

       InputDevice  "idev-id" "option" ...
              One  of  these  entries should be given for each input device being used in a session.  Normally at least two are required, one
              each for the core pointer and keyboard devices.  If either of those is missing, suitable InputDevice entries are  searched  for
              using  the  method  described  above in the INPUTDEVICE section.  The idev-id field is mandatory, and specifies the name of the
              InputDevice section being referenced.  Multiple option fields may be specified, each in double quotes.  The  options  permitted
              here  are any that may also be given in the InputDevice sections.  Normally only session-specific input device options would be
              used here.  The most commonly used options are:

                  "CorePointer"
                  "CoreKeyboard"
                  "SendCoreEvents"

              and the first two should normally be used to indicate the core pointer and core keyboard devices respectively.

       MatchSeat  seat-id
              Only apply this ServerLayout section if X server was started with -seat seat-id option.

       Options
              In addition to the following, any option permitted in the ServerFlags section may also be specified here.  When the same option
              appears in both places, the value given here overrides the one given in the ServerFlags section.

       Option "IsolateDevice"  "bus-id"
              Restrict  device  resets  to the specified bus-id.  See the BusID option (described in DEVICE SECTION, above) for the format of
              the bus-id parameter.  This option overrides SingleCard, if specified.  At present, only PCI devices can be  isolated  in  this
              manner.

       Option "SingleCard"  "boolean"
              As IsolateDevice, except that the bus ID of the first device in the layout is used.

       Here is an example of a ServerLayout section for a dual headed configuration with two mice:

           Section "ServerLayout"
               Identifier  "Layout 1"
               Screen      "MGA 1"
               Screen      "MGA 2" RightOf "MGA 1"
               InputDevice "Keyboard 1" "CoreKeyboard"
               InputDevice "Mouse 1"    "CorePointer"
               InputDevice "Mouse 2"    "SendCoreEvents"
               Option      "BlankTime"  "5"
           EndSection

DRI SECTION
       This  optional  section is used to provide some information for the Direct Rendering Infrastructure.  Details about the format of this
       section can be found on-line at <http://dri.freedesktop.org/>.

VENDOR SECTION
       The optional Vendor section may be used to provide  vendor-specific  configuration  information.   Multiple  Vendor  sections  may  be
       present, and they may contain an Identifier entry and multiple Option flags.  The data therein is not used in this release.

SEE ALSO
       General: X(7), Xserver(1), Xorg(1), cvt(1), gtf(1).

       Not all modules or interfaces are available on all platforms.

       Display  drivers:  apm(4),  ati(4), chips(4), cirrus(4), cyrix(4), fbdev(4), glide(4), glint(4), i128(4), i740(4), imstt(4), intel(4),
       mga(4), neomagic(4), nv(4), openchrome(4), r128(4), radeon(4), rendition(4), savage(4),  s3virge(4),  siliconmotion(4),  sis(4),  sis‐
       usb(4),  sunbw2(4),  suncg14(4),  suncg3(4),  suncg6(4),  sunffb(4),  sunleo(4),  suntcx(4),  tdfx(4),  trident(4), tseng(4), vesa(4),
       vmware(4), voodoo(4), wsfb(4), xgi(4), xgixp(4).

       Input drivers: acecad(4), citron(4), elographics(4), evdev(4), fpit(4), joystick(4),  kbd(4),  libinput(4),  mousedrv(4),  mutouch(4),
       penmount(4), synaptics(4), vmmouse(4), void(4), wacom(4).

       Other modules and interfaces: exa(4), fbdevhw(4), v4l(4).

AUTHORS
       This manual page was largely rewritten by David Dawes <[email protected]>.

X Version 11                                                  xorg-server 1.20.8                                                 xorg.conf(5)

See also