First pass in turning this collection of topics into a more coherent

chapter.  Add missing words to form complete sentences, rephrase
difficult to understand paragraphs, add additional markup tags such as
<application>, <guibutton>, etc..
This commit is contained in:
Murray Stokely 2001-09-03 06:58:19 +00:00
parent ecbfbb99d0
commit ff88de96a4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=10561

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.51 2001/08/30 22:44:37 logo Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.52 2001/09/02 09:56:55 murray Exp $
-->
<chapter id="x11">
@ -12,7 +12,7 @@
<para>FreeBSD uses XFree86 to provide users with a powerful
graphical user interface. XFree86 is a open-source
implementation of the X Window System. The following chapter
implementation of the X Window System. This chapter
will cover installation and configuration of XFree86 on your
FreeBSD system. For more information on X11 and to see whether
your video card is supported, check the <ulink
@ -41,27 +41,39 @@
<sect1 id="x-install">
<title>Installing XFree86</title>
<para><application>XFree86</application> is available as a port
and as a package, making it easy to install. You can also
download the binaries directly from the XFree86 organization and
install them by hand, following the instructions provided by the
XFree86 group.</para>
<para>Your only decision is which version of XFree86 to run.
XFree86 3.X is the maintenance branch of XFree86 development.
It is very stable, and it supports a huge number of graphics
cards. However, no new development is happening there. XFree86
4.X is a redesign of XFree86. As well as introducing many new
features (including much better support for fonts and
anti-aliasing), XFree86 4.X supports slightly fewer graphics
cards.</para>
<para>If your card is supported we recommend you run 4.X. If it
is not then run 3.X.</para>
<para>Before installing XFree86 you must decide which version to
run. <application>XFree86 3.X</application> is a maintenance
branch of XFree86 development. It is very stable, and it
supports a huge number of graphics cards. However, no new
development is happening there. <application>XFree86
4.X</application> is a complete redesign of the system with many
new features such as better support for fonts and
anti-aliasing. Unfortunately this new architecture requires
that the video drivers be rewritten, and some of the older
cards that were supported in 3.X are not yet supported in 4.X.</para>
<para>If your card is supported, then by all means run 4.X. The
FreeBSD setup program offers users the opportunity to install
and configure XFree86 3.3.6 during installation (covered in
<xref linkend="x-server">). If you would like to run
<application>XFree86 4.X</application>, then you should wait
until after the base FreeBSD system is installed and then
install XFree86. For example, to build and install
<application>XFree86 4.X</application> from the ports collection
:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/x11/XFree86-4</userinput>
&prompt.root; <userinput>make all install clean</userinput></screen>
<para>Alternatively, <application>XFree86 4.X</application> can be
installed from a binary package with the
<command>pkg_add</command> tool or directly from the FreeBSD
binaries provided on the <ulink
url="http://www.XFree86.org">XFree86 web site</ulink>.</para>
<para>The rest of this chapter will explain how to configure
XFree86, and suggest various programs for X that you might want
to try.</para>
XFree86 for your hardware, and how to setup a productive
desktop environment.</para>
<!-- Easiest way is from sysinstall for XFree86 3.X -->
@ -80,26 +92,15 @@
</sect1info>
<title>XFree86 Configuration</title>
<sect2>
<title>Introduction</title>
<para>This chapter will introduce the steps necessary to install
and configure the <application>XFree86</application>
X Windows System under FreeBSD.
Once the server is installed and configured properly. The user
can read <xref linkend="x11-wm"> to setup their desktop
environment.</para>
<indexterm><primary>XFree86 4.X</primary></indexterm>
<indexterm><primary>XFree86</primary></indexterm>
</sect2>
<indexterm><primary>XFree86 4.X</primary></indexterm>
<indexterm><primary>XFree86</primary></indexterm>
<sect2>
<title>Before You Start</title>
<para>Before the user is to start configuration of
<application>XFree86-4</application>, the the following
<application>XFree86 4.X</application>, the the following
information will need to be known about the target
system:</para>
@ -133,27 +134,12 @@
</sect2>
<sect2>
<title>Installing XFree86 4.X Software</title>
<para><application>XFree86 4</application> can be installed
using the FreeBSD ports system or using &man.pkg.add.1;. If the
user is building <application>XFree86-4</application> from
source and has USA_RESIDENT set in
<filename>/etc/make.conf</filename>, the user may first have to
fetch <filename>Wraphelp.c</filename> if XDM-AUTHORIZATION-1
support is desired. This file is to be placed in the port's
<filename>files/</filename> sub-directory before the port is
built.</para>
</sect2>
<sect2>
<title>Configuring XFree86 4.X</title>
<para>Configuration of <application>XFree86 4.X</application> is
a several step process. The first step is to build an initial
configuration file with the configure option to
a multi-step process. The first step is to build an initial
configuration file with the <option>-configure</option> option to
<application>XFree86</application>. As the super user, simply
run:</para>
@ -168,7 +154,7 @@
configuration file to load the proper drivers for the detected
hardware on the target system.</para>
<para>The next step is to test the currently existing
<para>The next step is to test the existing
configuration to verify that <application>XFree86</application>
can work with the graphics
hardware on the target system. To preform this task, the user
@ -177,9 +163,13 @@
<screen>&prompt.root; XFree86 -xf86config XF86Config.new</screen>
<para>If the user is presented with a black and grey grid and an
X mouse cursor, then the configuration was successful. To exit
the test, just press <keycap>Ctrl</keycap>, <keycap>Alt</keycap>
and <keycap>Backspace</keycap> simultaneously.</para>
X mouse cursor, then the configuration was successful. To
exit the test, just press <keycombo
action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>Backspace</keycap>
</keycombo> simultaneously.</para>
<indexterm><primary>XFree86 4 Tuning</primary></indexterm>
@ -373,7 +363,7 @@ EndSection</programlisting>
display the windows you will not get confused.</para>
<para>There is an interesting side-effect to this design. There is
nothing in the forces the client and server machines to be running
nothing in the protocol that forces the client and server machines to be running
the same operating system, or even to be running on the same type of
computer. It is perfectly feasible to run an X server on Microsoft
Windows or Apple's MacOS, and there are various free and commercial
@ -421,7 +411,7 @@ EndSection</programlisting>
window managers, and many more, are available in the
<filename>x11-wm</filename> category of the Ports Collection.</para>
<para>In addition, the KDE and GNOME desktop environments both have
<para>In addition, the <application>KDE</application> and <application>GNOME</application> desktop environments both have
their own window managers which integrate tightly with the desktop,
although both of them allow you to replace the default window manager
with your own choice.</para>
@ -539,9 +529,9 @@ EndSection</programlisting>
project. In this respect we are beginning to see a convergence in
look-and-feel on the Unix desktop, which certainly makes things easier
for the novice user. However, the sudden rise in popularity of
<quote>theming</quote>, where window managers make it possible to
dramatically personally your desktop and alter the look and feel of
the widgets risks confusing the issue once more.</para>
<quote>theming</quote>, alows users to confuse the issue once
more by dramatically altering the look and feel of desktop
widgets.</para>
</sect2>
</sect1>
@ -633,7 +623,7 @@ EndSection</programlisting>
<filename>/usr/ports/x11-servers/Xfstt</filename></para>
<para>You should now make a directory for your TrueType fonts
(e.g. <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>)
(For example, <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>)
and copy all of your TrueType fonts into this directory. Keep in
mind that you cannot take TrueType fonts directly from a
Macintosh; they must be in Unix/DOS/Windows format for use by
@ -641,9 +631,10 @@ EndSection</programlisting>
files into this directory you need to use
<application>ttmkfdir</application> to create a
<filename>fonts.dir</filename> file so that the X font renderer
knows that you have installed these new files. There is a FreeBSD
port for <port>x11-fonts/ttmkfdir</port> in
<filename>/usr/ports/x11-fonts/ttmkfdir</filename>.</para>
knows that you have installed these new
files. <command>ttmkfdir</command> is available from the FreeBSD
Ports Collection as <port>x11-fonts/ttmkfdir</port>.</para>
<screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/TrueType</userinput>
&prompt.root; <userinput>ttmkfdir > fonts.dir</userinput></screen>
@ -685,8 +676,8 @@ EndSection</programlisting>
describes only the simplest possibilities.</para>
<para>First, you need to tell the X server about the fonts which you
want anti-aliased. To do that, for each font directory you have
a line, which looks like this:</para>
want anti-aliased. For each font directory, add a line similar
to this:</para>
<programlisting>dir "/usr/X11R6/lib/X11/Type1"</programlisting>
@ -777,8 +768,8 @@ match any family == "LuciduxMono" edit family =+ "Lucidux Mono";</programl
<para>The X Display Manager (<application>XDM</application>) is
an optional part of the X Window System that is used for login
session management. This is useful for several types of
situations, including minimal <quote>X Terminals</quote> (see
<xref linkend="term-x">), desktops, and large network display
situations, including minimal <quote>X Terminals</quote>,
desktops, and large network display
servers. Since the X Window System is network and protocol
independent, there are a wide variety of possible configurations
for running X clients and servers on different machines
@ -805,7 +796,7 @@ match any family == "LuciduxMono" edit family =+ "Lucidux Mono";</programl
<para>The <application>XDM</application> daemon program is
located in <filename>/usr/X11R6/bin/xdm</filename>. You can run
this program at any time as root and it will start managing the
this program at any time as <username>root</username> and it will start managing the
X display on the local machine. If you want
<application>XDM</application> to run in the background every
time the machine boots up, a convenient way to do this is by
@ -836,7 +827,7 @@ match any family == "LuciduxMono" edit family =+ "Lucidux Mono";</programl
<application>XDM</application>. Typically you will find these
files:</para>
<informaltable>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
@ -868,7 +859,8 @@ match any family == "LuciduxMono" edit family =+ "Lucidux Mono";</programl
<row>
<entry><filename>Xsetup_</filename>*</entry>
<entry></entry>
<entry>Script to launch applications before the login
interface.</entry>
</row>
<row>
@ -945,7 +937,7 @@ match any family == "LuciduxMono" edit family =+ "Lucidux Mono";</programl
<para>These files contain scripts that will be run automatically
before displaying the chooser or login interfaces. There is a
script for each display being used, named
<filename>Xsetup_</filename>followed by the local display
<filename>Xsetup_</filename> followed by the local display
number (for instance <filename>Xsetup_0</filename>). Typically
these scripts will run one or two programs in the background
such as <filename>xconsole</filename>.</para>
@ -986,7 +978,7 @@ DisplayManager.requestPort: 0</screen>
and then restart <application>XDM</application>. Remember that
comments in app-defaults files begin with a <quote>!</quote>
character, not a <quote>#</quote>. After this, you may need to
character, not the usual <quote>#</quote>. After this, you may need to
put more strict access controls in place. Look at the example
entries in <filename>Xaccess</filename> file, and refer to the
&man.xdm.1; manual page.</para>
@ -994,14 +986,15 @@ DisplayManager.requestPort: 0</screen>
<sect2>
<title>Replacements for XDM</title>
<para>Several replacements for the default
<application>XDM</application> program exist. One of them,
<application>KDM</application> (bundled with
<application>KDE</application>) is described in a later <link
linkend="x11-wm-kde2-kdm">section</link>. Apart from various
visual improvements and cosmetic frills, it can be easily
configured to let users choose their window manager of choice
at the time they log in.</para>
<application>XDM</application> program exist. One of them,
<application>KDM</application> (bundled with
<application>KDE</application>) is described later in this
chapter. <application>KDM</application> offers many visual
improvements and cosmetic frills, as well as the
functionality to allow users to choose their window manager
of choice at login time.</para>
</sect2>
@ -1022,7 +1015,7 @@ DisplayManager.requestPort: 0</screen>
<title>Desktop Environments</title>
<para>This section describes the different desktop environments
available for X-Windows on FreeBSD. For our purposes a "desktop
available for X on FreeBSD. For our purposes a "desktop
environment" will mean anything ranging from a simple window
manager, to a complete suite of desktop applications such as
<application>KDE</application> or <application>GNOME</application>.
@ -1049,8 +1042,18 @@ DisplayManager.requestPort: 0</screen>
</sect3>
<sect3 id="x11-wm-gnome-install">
<title>Installing GNOME</title>
<para>To install <application>GNOME</application> from the network,
simply type:</para>
<para>The easiest way to install
<application>GNOME</application> is through the
<quote>Desktop Configuration</quote> menu during the FreeBSD
installation process as described in Chapter 2. If for some
reason you didn't install a desktop environment at that
time, then you can easily install one from the package or
ports collections.</para>
<para>To install the <application>GNOME</application> package
from the network, simply type:</para>
<screen>&prompt.root; <userinput>pkg_add -r gnome</userinput></screen>
<para>If you would rather build
@ -1128,7 +1131,7 @@ DisplayManager.requestPort: 0</screen>
of a spread-sheet, a presentation application, an organizer, a
news client and more. <application>KDE</application> is also
comes with a web browser called
<application>Konqeuror</application>, which represents already
<application>Konqeuror</application>, which represents
a solid competitor to other existing web browsers on Unix
systems. More information on <application>KDE</application>
can be found on the <ulink url="http://www.kde.org">KDE
@ -1138,37 +1141,46 @@ DisplayManager.requestPort: 0</screen>
<sect3 id="x11-wm-kde2-install">
<title>Installing KDE2</title>
<para>At the time of writing, a package for kde2 does not
exist yet. No problem! The ports tree hides all the
complexity of building a package from source. To install
<application>KDE2</application>, do this :</para>
<para>Just like with <application>GNOME</application> or any
other desktop environment, the easiest way to install
<application>KDE</application> is through the <quote>Desktop
Configuration</quote> menu during the FreeBSD installation
process as described in Chapter 2. If for some reason you
didn't install a desktop environment at that time, then you
can easily install one from the package or ports
collections.</para>
<para>To install the <application>KDE2</application> package
from the network, simply type:</para>
<screen>&prompt.root; <userinput>pkg_add -r kde2</userinput></screen>
<para>If you would rather build
<application>KDE</application> from source, then use the
ports tree:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/x11/kde2</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>This command will fetch all the necessary files from the
Internet, configure and compile <application>KDE2</application>,
install the applications, and then clean up after itself.</para>
<para>Now you are going to have to tell the X server to launch
<application>KDE2</application> instead of a default window manager.
Do this by typing this:</para>
<para>After you've installed <application>KDE2</application>,
you must tell the X server to launch this application
instead of the default window manager. This is accomplished
by editing the <filename>.xinitrc</filename> file in your
home directory :</para>
<screen>&prompt.root; <userinput>echo "/usr/X11R6/bin/startkde" > ~/.xinitrc</userinput></screen>
<para>Now, whenever you go into X-Windows,
<para>Now, whenever invoke X-Windows with <command>startx</command>,
<application>KDE2</application> will be your
desktop. (Note: this will not work if you are logging in via
a display manager like <filename>xdm</filename>. In that
case you have two options: create an
<filename>.xsession</filename> file as described in the
section on <link linkend="x11-wm-gnome">GNOME</link>, but
with the <filename>/usr/X11R6/bin/startkde</filename>
command instead of the <application>gnome-session</application>
command; or, configure your display manager to allow
choosing a desktop at login time. Below it is explained how
to do this for <filename>kdm</filename>,
<application>KDE</application>'s display manager.)</para>
desktop.</para>
<para>If you are using a display manager such as
<application>xdm</application>, then configuration is
slightly different. You must edit the
<filename>.xsession</filename> file instead. Instructions
for <application>kdm</application> are described later in
this chapter.</para>
</sect3>
</sect2>
<sect2 id="x11-wm-kde2-details">
@ -1183,9 +1195,9 @@ DisplayManager.requestPort: 0</screen>
the on-line documentation. <application>KDE</application>
comes with its own web browser,
<application>Konqueror</application>, dozens of useful
applications, and extensive documentation. This section only
discusses somewhat technical things which are difficult to
learn just by random exploration.</para>
applications, and extensive documentation. The remainder of
this section discusses the technical items that are
difficult to learn by random exploration.</para>
<sect3 id="x11-wm-kde2-kdm">
<title>The KDE display manager</title>
@ -1216,13 +1228,13 @@ DisplayManager.requestPort: 0</screen>
group in <filename>/etc/group</filename> for this), and then
type <userinput>kcontrol</userinput>.</para>
<para> Click on the icon on the left marked "System", then on
"Login manager". On the right you will see various configurable
<para> Click on the icon on the left marked <guibutton>System</guibutton>, then on
<guibutton>Login manager</guibutton>. On the right you will see various configurable
options, which the <application>KDE</application> manual will
explain in greater detail. Click on "sessions" on the right.
explain in greater detail. Click on <guibutton>sessions</guibutton> on the right.
Depending on what window managers or desktop environments you
have currently installed, you can type their names in "New
type" and add them. (These are just labels so far, not
have currently installed, you can type their names in <guibutton>New
type</guibutton> and add them. (These are just labels so far, not
commands, so you can write <application>KDE</application> and
<application>GNOME</application> rather than
<application>startkde</application> or <application>gnome-session</application>.)
@ -1230,7 +1242,7 @@ DisplayManager.requestPort: 0</screen>
<para> Play with the other menus as you like (those are mainly
cosmetic and self-explanatory). When you are done, click on
"Apply" at the bottom, and quit the control center.</para>
<guibutton>Apply</guibutton> at the bottom, and quit the control center.</para>
<para> To make sure <application>kdm</application> understands
what your above labels (<application>KDE</application>,
@ -1242,7 +1254,7 @@ DisplayManager.requestPort: 0</screen>
configuration files. Please see the <application>KDE
2.2</application> documentation for details.</para>
</note>
In your terminal window, as root,
In your terminal window, as <username>root</username>,
edit the file
<filename>/usr/X11R6/lib/X11/xdm/Xsession</filename>. You
will come across a section in the middle looking like this (by
@ -1280,12 +1292,13 @@ esac</screen>
<filename>/usr/X11R6/lib/X11/xdm/Xsetup_0</filename>:</para>
<screen>/usr/X11R6/bin/kdmdesktop</screen>
<para>Now, you need only to make sure
<application>kdm</application> is started at the next bootup.
To learn how to do this, read the section on <link
linkend="x-xdm">xdm</link>, and do the same thing replacing
references to the <filename>xdm</filename> program by
<filename>kdm</filename>.</para>
<para>Now, you need only to make sure that
<application>kdm</application> is listed in
<filename>/etc/ttys</filename> to be started at the next bootup.
To do this, simply follow the instructions from the previous
section on <link linkend="x-xdm">xdm</link> and replace
references to the <command>xdm</command> program with
<command>kdm</command>.</para>
<para>That's it. Your next login screen should have a pretty
face and lots of menus.</para>
@ -1294,10 +1307,6 @@ esac</screen>
<sect3 id="x11-wm-kde2-antialias">
<title>Anti-aliased Fonts</title>
<para>Tired of blocky staircase edges to your fonts under X11?
Tired of unreadable text in web browsers? Well, no
more.</para>
<para>Starting with version 4.0.2,
<application>XFree86</application> supports anti-aliasing via
its "RENDER" extension, and starting with version 2.3, Qt (the
@ -1321,7 +1330,8 @@ esac</screen>
<sect3 id="x11-wm-xfce-about">
<title>About XFCE</title>
<para><application>XFCE</application> is based on the gtk+
<para><application>XFCE</application> is a desktop environment
based on the gtk+
toolkit used by <application>GNOME</application>, but is much
more lightweight and meant for those who want a simple,
efficient desktop which is nevertheless easy to use and
@ -1360,7 +1370,7 @@ esac</screen>
The ports tree comes to the rescue again: </para>
<screen>&prompt.root; <userinput>cd /usr/ports/x11-wm/xfce</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
&prompt.root; <userinput>make install clean</userinput></screen>
<para> All necessary source packages (including dependencies)
will be automagically fetched, built and installed, and