XFree86 Components

Checking Direct Rendering Infrastructure (DRI) Installation

DRI is a framework for allowing software to access graphics hardware in a safe and efficient manner. It is installed in XFree86 by default if you have a supported video card. To check if DRI is installed properly, check the log file /var/log/XFree86.0.log for statements like:

(II) R128(0): Direct rendering enabled

From an xterm, run glxinfo and look for the phrase:

direct rendering: Yes

You can also run the test program glxgears. This program brings up a window with three gears turning. The xterm will display how many frames were drawn every five seconds so this is a reasonable benchmark. The window is scalable, and the frames drawn per second is highly dependent on the size of the window.

For troubleshooting problems, check the DRI Users Guide at http://dri.sourceforge.net/doc/DRIuserguide.html.

Adding TrueType fonts to XFree86

TrueType font support is built into XFree86. The following items need to be completed to make the fonts available.

Establish a TrueType font directory

The build of XFree86 as given above automatically creates a TrueType font directory: /usr/X11R6/lib/X11/fonts/TTF. This directory already has some TrueType fonts and is set up correctly. If this directory is satisfactory, copy any other TrueType fonts you want into that directory. If not, create a new directory, preferably in the /usr/X11R6/lib/X11/fonts/ directory and put your TrueType fonts there.

Create fonts.scale and fonts.dir

Now change to the directory where you have your TrueType fonts and run
mkfontscale &&
mkfontdir

Ensure TrueType is loaded in XF86Config

The "Module" section should look like:
Section "Module"
        ...
        Load  "freetype"
        ...
EndSection

Ensure the FontPath in XF86Config points to the TrueType font directory

The "Files" section should look like
Section "Files"
        ...
        FontPath "/usr/X11R6/lib/X11/fonts/[TrueTypeDir]/"
        ...
EndSection

Update the font cache files

Finally, to update all the font cache files specified in /etc/fonts/fonts.conf, run

fc-cache

XFree86 will now be able to use TrueType fonts when it is restarted. You can check to see if the new fonts are available with the xlsfonts or xfontsel program.

Note: You should re-run mkfontscale and mkfontdir any time you add or delete TrueType fonts. You should also rerun fc-cache each time you add or remove any fonts.

Setting up keyboards

In this version of XFree86, it has been reported that non-Latin keyboard layouts do not include Latin configurations as was previous practice. To set up a keyboard for Latin and non-Latin input, change the XkbLayout keyboard driver option in the InputDevice section of the XF86Config file. For example:

   Section "InputDevice"
     Identifier          "Keyboard0"
     Driver              "Keyboard"
     Option "XkbModel"   "pc105"
     Option "XkbLayout"  "en_US,ru"
     Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:scroll"
   EndSection

In this example, you can use the Alt-Shift combination to switch between keyboard layouts and use the Scroll Lock LED to indicate when the second layout is active.

Setting up XDM

xdm provides a graphical logon capability and is normally set up in /etc/inittab. Most of the information you need to customize xdm is found in its man page. To execute xdm during bootup, change the initdefault level to 5 and add the following lines to /etc/inittab:

# Run xdm as a separate service
x:5:respawn:/usr/X11R6/bin/xdm -nodaemon

Using XFree86 Resources

There are many options that can be set in XFree86 and X clients via resources. Typically resources are set in the ~/.Xresources file.

The layout of the ~/.Xresources file consists if a list of specifications in the form of

object.subobject[.subobject...].attribute: value

Typically, components of a resource specification are linked together by either tight, represented by a dot (.), or loose, represented by an asterisk (*), bindings. A tight binding indicates that the components on either side of the dot must be directly next to each other as defined in a specific implementation. An asterisk is a wildcard character that means that any number of levels in a defined hierarchy can be between the components. For example, XFree86 offers two new cursors: redglass and whiteglass. To use one of these resources, you need to add the following line:

Xcursor.theme: whiteglass

However, you can specify the background for all clients with:

*background: blue

More specific resource variables will override less specific names.

Resource definitions can be found in the man pages for each respective client.

In order to load your resources, the xrdb program must be called with the appropriate parameters. Typically, the first time resources are loaded, you use:

xrdb -load <filename>

To add resources to XFree86's database in memory use:

xrdb -merge <filename>

The xrdb instruction is usually placed in ~/.xinitrc or ~/.xsession. To get more information, see the xrdb man page.