<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="x-config">
  <?dbhtml filename="xconfig.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2012-05-12 18:04:54 -0400 (Sat, 12 May 2012) $</date>
  </sect1info>

  <title>Additional X Window System Configuration</title>

  <para>Below you will find information on fine tuning the components
  of the <application>X Window System</application>. The documentation
  links are specifically for <application>XFree86</application>,
  which has been retired in BLFS, however, the
  information contained in those documents usually pertains to
  <application>Xorg</application> as well.  Detailed descriptions are also
  located in the <filename>xorg.conf</filename> man page.</para>

  <sect2 id='xinput'>
    <title>Setting up X Input Devices</title>

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/XInputDevices"/></para>

    <sect3 id='xkeyboard'>
      <title>Keyboards</title>

      <para>The following external links provide a good introduction
      to setting up various keyboards.</para>

      <para><ulink url="http://www.xfree86.org/current/XKB-Config.html">The
      <application>XKB</application> Configuration Guide</ulink></para>

      <para><ulink url="http://www.xfree86.org/current/XKB-Enhancing.html">How
      to further enhance <application>XKB</application>
      configuration</ulink></para>

    </sect3>

    <sect3 id='xmice'>
      <title>Mice</title>

      <para>Multi-button mice can be used to their full potential by mapping
      the additional buttons to X button events. Wheel mice are a common example.
      The ordinary ones contain two buttons, and a scroll wheel that doubles as
      a third button.  As far as <application>X</application> is concerned, there
      are 5 buttons as it counts the 'scroll up' and 'scroll down' functions
      (internally they are buttons). Here is an example 'InputDevice' section for
      a typical PS/2 wheel mouse:</para>

<screen><literal>Section "InputDevice"
  Identifier  "Mouse 0"
  Driver      "mouse"
  Option      "Device"        "/dev/input/mice"
  Option      "Protocol"      "IMPS/2"
  Option      "ZAxisMapping"  "4 5"
  Option      "Buttons"       "5"
EndSection</literal></screen>

      <para>Button assignments differ for every mouse type. On more exotic
      mice, you may find that the rocker wheel buttons are 6 and 7. Simply
      add those values to the <option>ZAxisMapping</option> option, and set
      the <option>Buttons</option> option appropriately to enable side to
      side scrolling. Additional information on button assignment can be
      found in the following <application>XFree86</application>
      document:</para>

      <para><ulink url="http://www.xfree86.org/current/mouse.html">Mouse
      Support in <application>XFree86</application></ulink></para>

    </sect3>

  </sect2>

  <sect2 id='xdisplay'>
    <title>Fine Tuning Display Settings</title>

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/xdisplay"/></para>

    <sect3>
      <title>The 'Monitor' Section</title>

      <para>One or more monitor sections specify the characteristics of your
      monitor(s).  Usually, the setup program can probe your monitor and setup
      a monitor properly, however, this does not always work.  The most common
      entries that need to be updated are <option>HorizSync</option> and
      <option>VertRefresh</option>.  If the configuration program does not set
      these properly, you will notice a resolution much lower than desired.
      The default <option>HorizSync</option> setting is 28-33kHz which is very
      conservative.  The default  <option>VertRefresh</option> is 43-72Hz.
      Consult your monitor documentation or search online for the proper
      settings for your monitor.</para>

      <para>It is also possible to control many detailed timing characteristics
      of a monitor with a <option>Modeline</option> setting.  Most users will
      not need to do this, but details are in the man page referenced above.
      </para>

      <warning><para>Incorrect monitor settings can destroy your monitor or
      even set it on fire!  For most newer monitors, the result of overly
      aggressive settings is a blank screen, but older monitors do not all have
      built in safeguards.</para></warning>

      <para>Other items that may be of interest in this section is the
      <option>DPMS</option> and associated <option>StandbyTime</option>,
      <option>SuspendTime</option>, and <option>OffTime</option> options.
      These parameters control the energy saving features of your monitor.  They
      may also be controlled at runtime with the <command>xset</command> command
      or via a graphical interface such as <application>KDE</application>'s
      Control Center.</para>

      <para>A typical monitor section will normally look like:</para>

<screen><literal>Section "Monitor"
    DisplaySize   400   300 # mm
    Identifier   "Monitor0"
    VendorName   "VSC"
    ModelName    "G810-2"
    HorizSync     30.0 - 92.0
    VertRefresh   50.0 - 180.0
    Option       "DPMS"
    Option       "StandbyTime" "10"
    Option       "SuspendTime" "20"
    Option       "OffTime"     "30"
EndSection</literal></screen>

    </sect3>

    <sect3>
      <title>The 'Device' Section</title>

      <para>This section basically controls your video card. The key entry is
      the <option>Driver</option> setting.  This can be a driver from the
      <application>X</application> distribution you are using, from the kernel
      source, or a proprietary driver for devices such as a Nvidia graphics
      adaptor.  The driver often is a kernel module or built into the kernel
      itself, but there are also separate non-kernel components usually found
      in the <filename
      class='directory'>/usr/X11R6/lib/modules/drivers/</filename> directory.
      These were either built with the <application>X</application> server or
      installed via external (i.e., proprietary) programs.</para>

      <para>There are many options for device drivers and most are specific to
      the driver being used.  Documentation for many drivers can be found at
      the <ulink url="http://www.xfree86.org/current/manindex4.html">XFree86
      Driver Manual Pages</ulink>.</para>

      <para>A typical Device section will look like:</para>

<screen><literal>Section "Device"
    Identifier  "Videocard0"
    Driver      "radeon"
    VendorName  "Videocard vendor"
    BoardName   "ATI Radeon 7500"
EndSection</literal></screen>

    </sect3>

  </sect2>

  <sect2 id='xlayouts'>
    <title>Display Layouts</title>

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/xlayouts"/></para>

    <para>Within the <application>X Window System</application> configuration
    file there may be multiple layout sections like:</para>

<screen><literal>Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection</literal></screen>

    <para>The default layout is the first, but if you have special needs,
    you can create others with different configurations.  The
    <option>Identifier</option> line in each section is the key.  Different
    layouts can be created using different Screen and InputDevice sections.</para>

    <para>After the configuration file is updated, an alternate configuration
    can be specified on the <command>startx</command> line.  For instance,
    to start <application>X</application> with an alternate layout with an
    Identifier of "layout2", use the following command line:</para>

<screen><command>startx -- -layout layout2</command></screen>


  </sect2>

</sect1>
