glfs/x/installing/xorg-config.xml
DJ Lucas 8020e8b6ed Re-added svn properties for xorg-config.xml.
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@8851 af4574ff-66df-0310-9fd7-8a98e5e911e0
2011-01-23 23:00:50 +00:00

240 lines
11 KiB
XML

<?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$</othername>
<date>$Date$</date>
</sect1info>
<title>Configuring Xorg-&xorg7-version;</title>
<sect2 role="configuration" id='X11R6-compat-symlink'
xreflabel="Creating an X11R6 Compatibility Symlink">
<title>Creating an X11R6 Compatibility Symlink</title>
<para>Until recently (relatively speaking) almost every
<application>X Window</application> installation you performed or came
across was installed in the
<filename class='directory'>/usr/X11R6</filename> directory. That was the
standard for years. Developers picked up on this and wrote their package
installation scripts looking for <application>X</application> in the
standard location. Things have changed and the trend is to now install
<application>X</application> in
<filename class='directory'>/usr</filename>. Some people want to install
it in a custom location.</para>
<para>Many package developers have not caught up to the change and their
packages are still trying to find <application>X</application> in
<filename class='directory'>/usr/X11R6</filename> and subsequently fail
when you try to build the package. Though for most packages it is not
difficult to 'hack' the installation script to fix the problem, that is not
the long term solution to the problem. Upstream developers need to modernize
their installation scripts and eliminate the problem altogether.</para>
<para>Until then, you can create a symbolic link to satisfy the
<filename class='directory'>/usr/X11R6</filename> requirement so that you
won't be inconvenienced with a package build failure due to this known
issue. If you wish to create the symlink, issue the following command as
the <systemitem class="username">root</systemitem> user (ensure you modify
<replaceable>&lt;$XORG_PREFIX&gt;</replaceable> appropriately):</para>
<screen role="root"><userinput>ln -vsf <replaceable>&lt;$XORG_PREFIX&gt;</replaceable> /usr/X11R6</userinput></screen>
</sect2>
<sect2 role="configuration" id="xft-font-protocol" xreflabel="Xft Font Protocol">
<title>Xft Font Protocol</title>
<indexterm role="configuration" id=" fonts">
<primary sortas="g-truetype">TrueType Fonts</primary>
</indexterm>
<para>Xft provides antialiased font rendering through
<application>Freetype</application>, and fonts are controlled from the
client side using <application>Fontconfig</application>. The default
search path is <filename class="directory">/usr/share/fonts</filename>
and <filename class="directory">~/.fonts</filename>.
<application>Fontconfig</application> searches directories in its
path recursively and maintains a cache of the font characteristics in
<filename>fonts.cache-1</filename> files in each directory. If the cache
appears to be out of date, it is ignored, and information is (slowly)
fetched from the fonts themselves. This cache
can be regenerated using the <command>fc-cache</command> command at any
time. You can see the list of fonts known by
<application>Fontconfig</application> by running the command
<command>fc-list</command>.</para>
<para>If you've installed <application>Xorg</application> in any prefix
other than <filename class="directory">/usr</filename>, the
<application>X</application> fonts were not installed in a
location known to <application>Fontconfig</application>. This prevents
<application>Fontconfig</application> from using the poorly rendered
Type 1 fonts or the non-scalable bitmapped fonts. Symlinks were created
from the <filename class="directory">OTF</filename> and <filename
class="directory">TTF</filename> <application>X</application> font
directories to <filename
class="directory">/usr/share/fonts/X11-{OTF,TTF}</filename>. This allows
<application>Fontconfig</application> to use the OpenType and TrueType
fonts provided by <application>X</application> (which are scalable and
of higher quality).</para>
<para><application>Fontconfig</application> uses names such as
"Monospace 12" to define fonts. Applications generally use generic font
names such as "Monospace", "Sans" and "Serif".
<application>Fontconfig</application> resolves these names to a font that
has all characters that cover the orthography of the language indicated
by the locale settings. Knowledge of these font names is included in
<filename>/etc/fonts/fonts.conf</filename>. Fonts that are not listed
in this file are still usable by <application>Fontconfig</application>,
but they will not be accessible by the generic family names.</para>
<para>Standard scalable fonts that come with <application>X</application>
provide very poor Unicode coverage. You may notice in applications that
use <application>Xft</application> that some characters appear as a box
with four binary digits inside. In this case, a font set with the
available glyphs has not been found. Other times, applications that
don't use other font families by default and don't accept substitutions
from <application>Fontconfig</application> will display blank lines when
the default font doesn't cover the orthography of the user's language.
This happens, e.g., with <application>Fluxbox</application> in the
ru_RU.KOI8-R locale.</para>
<para>In order to provide greater Unicode coverage, it is recommended
that you install these fonts:</para>
<itemizedlist>
<listitem>
<para><ulink url="http://dejavu.sourceforge.net/">DejaVu fonts</ulink>
- These fonts are replacements for the Bitstream Vera fonts and
provide Latin-based scripts with accents and Cyrillic glyphs.</para>
</listitem>
<listitem>
<para><ulink
url="http://download.savannah.nongnu.org/releases/freefont/">FreeFont</ulink>
- This set of fonts covers nearly every non-CJK character, but is not
visually pleasing. <application>Fontconfig</application> will use it
as a last resort to substitute generic font family names.</para>
</listitem>
<listitem>
<para><ulink
url="http://corefonts.sourceforge.net/">Microsoft Core fonts</ulink>
- These fonts provide slightly worse Unicode coverage than FreeFont,
but are better hinted. Be sure to read the license before using
them. These fonts are listed in the aliases in the
<filename class="directory">/etc/fonts/fonts.d</filename> directory
by default.</para>
</listitem>
<listitem>
<para><ulink
url="http://cle.linux.org.tw/fonts/FireFly">Firefly New Sung font</ulink>
- This font provides Chinese coverage. This font is listed in the
aliases in the
the <filename class="directory">/etc/fonts/fonts.d</filename>
directory by default.</para>
</listitem>
<listitem>
<para><ulink
url="http://cle.linux.org.tw/fonts/Arphic">Arphic fonts</ulink> -
A similar set of Chinese fonts to the Firefly New Sung font.
These fonts are listed in the aliases in the
<filename class="directory">/etc/fonts/fonts.d</filename> directory
by default.</para>
</listitem>
<listitem>
<para><ulink
url="http://sourceforge.jp/projects/efont/">Kochi fonts</ulink> -
These provide Japanese characters, and are listed in the aliases
in the <filename class="directory">/etc/fonts/fonts.d</filename>
directory by default.</para>
</listitem>
<listitem>
<para><ulink
url="http://kldp.net/projects/baekmuk/">Baekmuk fonts</ulink>
- These fonts provide Korean coverage, and are listed in the
aliases in the
<filename class="directory">/etc/fonts/fonts.d</filename> directory
by default.</para>
</listitem>
</itemizedlist>
<para>The list above will not provide complete Unicode coverage. For
more information, please visit the <ulink
url="http://unifont.org/fontguide/">Unicode Font Guide</ulink>.</para>
<para>As an example, consider the installation of the DejaVu fonts. From
the unpacked source directory, run the following commands as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>install -v -d -m755 /usr/share/fonts/dejavu &amp;&amp;
install -v -m644 *.ttf /usr/share/fonts/dejavu &amp;&amp;
fc-cache -v /usr/share/fonts/dejavu</userinput></screen>
</sect2>
<sect2 role="configuration" id='xconfig'>
<title>Setting up Xorg Devices</title>
<para>For most hardware configurations, modern Xorg will automatically
get the server configuration correct without any user intervention. There
are, however, some cases where auto-configuration will be incorrect.
Following are some example manual configuration items that may be of use in
these instances.</para>
<sect3 id="xinput">
<title>Setting up X Input Devices</title>
<para>For most input devices, no additional configuration will be
necessary. This section is provided for informational purposes only.</para>
<para>A sample default XKB setup could look like the following (executed as
the <systemitem class="username">root</systemitem> user):</para>
<screen><userinput role="username">cat &gt; /etc/X11/xorg.conf.d/xkb-defaults.conf &lt;&lt; "EOF"
Section "InputClass"
Identifier "XKB Defaults"
MatchIsKeyboard "yes"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EOF</userinput></screen>
</sect3>
<sect3 id="xdisplay">
<title>Fine Tuning Display Settings</title>
<para>Again, with modern Xorg, little or no additional configuration is
necessary. If you should need extra options passed to your video driver,
for instance, you could use something like the following (again, executed as
the <systemitem class="username">root</systemitem> user):</para>
<screen><userinput role="root">cat &gt; /etc/X11/xorg.conf.d/videocard-0.conf &lt;&lt; "EOF"
Section "Device"
Identifier "Videocard0"
Driver "radeon"
VendorName "Videocard vendor"
BoardName "ATI Radeon 7500"
Option "NoAccel" "true"
EndSection
EOF</userinput></screen>
<para>Another common setup is having multiple server layouts for use in
different environments. Though the server will automatically detect the
presence of another monitor, it may get the order incorrect:</para>
<screen><userinput role="root">cat &gt; /etc/X11/xorg.conf.d/server-layout.conf &lt;&lt; "EOF"
Section "ServerLayout"
Identifier "DefaultLayout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
Option "Xinerama"
EndSection
EOF</userinput></screen>
</sect3>
</sect2>
</sect1>