Date: Fri, 11 Jan 2013 14:31:52 -0800 (PST) From: Dru Lavigne <dru.lavigne@att.net> To: freebsd-doc@freebsd.org Subject: [patch] content changes to X11 chapter Message-ID: <1357943512.96753.YahooMailClassic@web184906.mail.gq1.yahoo.com>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Attached is the svn diff for the X11 chapter. This represents a complete content update of this chapter.
Igor is mostly happy. I think the remaining indent errors are false warnings as they only occur when an inline tag is in the previous <para>.
I did not verify the widescreen settings. I think the i810 section is correct. The KDM section needs more content. Other than that, it is a decent first pass at bringing this chapter into the 21st century.
Cheers,
Dru
[-- Attachment #2 --]
Index: x11/chapter.xml
===================================================================
--- x11/chapter.xml (revision 40561)
+++ x11/chapter.xml (working copy)
@@ -11,303 +11,134 @@
<author>
<firstname>Ken</firstname>
<surname>Tom</surname>
- <contrib>Updated for X.Org's X11 server by </contrib>
</author>
<author>
<firstname>Marc</firstname>
<surname>Fonvieille</surname>
</author>
+ <author>
+ <firstname>Dru</firstname>
+ <surname>Lavigne</surname>
+ </author>
</authorgroup>
</chapterinfo>
<title>The X Window System</title>
- <sect1 id="x11-synopsis">
- <title>Synopsis</title>
+ <sect1>
+ <title>Introduction</title>
- <para>FreeBSD uses X11 to provide users with
- a powerful graphical user interface. X11
- is a freely available version of the X Window System that
- is implemented in <application>&xorg;</application>
- (and other software
- packages not discussed here).
- The
- default and official flavor of X11 in &os; is
- <application>&xorg;</application>, the X11 server developed by
- the X.Org Foundation under a license very similar to the one used
- by &os;. Commercial X servers for &os; are also available.</para>
+ <para>An installation of &os; using
+ <application>bsdinstall</application> does not
+ automatically install a graphical user interface. This chapter
+ describes how to install and configure
+ <application>&xorg;</application>, which provides the X Window
+ System needed to provide a graphical environment. It then
+ describes how to find and install a desktop environment
+ or window manager.</para>
- <para>For more information on the video hardware that X11
- supports, check the <ulink
- url="http://www.x.org/">&xorg;</ulink> web site.</para>
+ <note>
+ <para>FreeBSD users looking for an installation method that
+ automatically configures the X Window System and offers a
+ choice of window managers during installation should take a
+ look at <ulink
+ url="http://www.pcbsd.org/">PC-BSD.</ulink></para>
+ </note>
<para>After reading this chapter, you will know:</para>
<itemizedlist>
<listitem>
- <para>The various components of the X Window System, and how they
- interoperate.</para>
+ <para>The terms associated with the X Window System.</para>
</listitem>
<listitem>
- <para>How to install and configure X11.</para>
+ <para>How to install and configure
+ <application>Xorg</application>.</para>
</listitem>
<listitem>
- <para>How to install and use different window managers.</para>
+ <para>How to install and configure a desktop
+ environment.</para>
</listitem>
<listitem>
- <para>How to use &truetype; fonts in X11.</para>
+ <para>How to configure a display manager.</para>
</listitem>
<listitem>
- <para>How to set up your system for graphical logins
- (<application>XDM</application>).</para>
+ <para>How to configure fonts.</para>
</listitem>
- </itemizedlist>
- <para>Before reading this chapter, you should:</para>
-
- <itemizedlist>
<listitem>
- <para>Know how to install additional third-party
- software (<xref linkend="ports"/>).</para>
+ <para>How to troubleshoot the <application>Xorg</application>
+ configuration.</para>
</listitem>
</itemizedlist>
</sect1>
- <sect1 id="x-understanding">
- <title>Understanding X</title>
+ <sect1>
+ <title>Terminology</title>
- <para>Using X for the first time can be somewhat of a shock to someone
- familiar with other graphical environments, such as µsoft.windows; or
- &macos;.</para>
+ <para>The X Window System is designed as a network protocol
+ and uses a client-server model. The
+ <quote>X server</quote> runs on the computer that has the
+ keyboard, monitor, and mouse attached. The X server is
+ responsible for managing the display and for handling input
+ from the keyboard, mouse, or other input devices such as a
+ video projector. The <quote>X client</quote> is a running
+ application such as an <application>XTerm</application> or
+ <application>firefox</application>. An X client sends
+ messages to the X server such as <quote>Please draw a window
+ at these coordinates</quote>, and the server sends back
+ messages such as <quote>The user just clicked on the OK
+ button.</quote></para>
- <para>While it is not necessary to understand all of the details of various
- X components and how they interact, some basic knowledge makes
- it possible to take advantage of X's strengths.</para>
+ <para>Typically, the X server and the X clients run on the same
+ computer. However, it is possible to run the X server on a
+ less powerful computer, and run the X clients on a more
+ powerful system. In this scenario, the communication between
+ the X client and server takes place over the network.</para>
- <sect2>
- <title>Why X?</title>
+ <para>A <quote>window manager</quote> controls the placement
+ and appearance of windows within the graphical environment.
+ There are over a hundred different window managers available
+ within the <filename>x11-wm</filename> category of the &os;
+ Ports Collection. Each window manager provides a different
+ look and feel. Some support virtual desktops, customized
+ keystrokes to manage the desktop, or themes.</para>
- <para>X is not the first window system written for &unix;, but it is the
- most popular of them. X's original development team had worked on another
- window system prior to writing X. That system's name was
- <quote>W</quote> (for <quote>Window</quote>). X was just the next
- letter in the Roman alphabet.</para>
+ <para>A <quote>desktop environment</quote> is a window
+ manager that provides its own suite of applications.
+ Applications can include configuration utilities, editors,
+ games, web browsers, and file managers.
+ <application>KDE</application> and
+ <application>GNOME</application> are considered to be desktop
+ environments.</para>
- <para>X can be called <quote>X</quote>, <quote>X Window System</quote>,
- <quote>X11</quote>, and a number of other terms. You may find
- that using the term <quote>X Windows</quote> to describe X11
- can be offensive to some people; for a bit more insight on
- this, see &man.X.7;.</para>
- </sect2>
+ <para>The <quote>focus policy</quote> determines which window
+ receives user input. For example, a
+ <quote>click-to-focus</quote> policy will activate a window
+ when it is clicked. The window manager enforces the focus
+ policy and different window managers support different focus
+ methods. All window managers support click-to-focus, and most
+ window managers support several types of focus methods.</para>
- <sect2>
- <title>The X Client/Server Model</title>
-
- <para>X was designed from the beginning to be network-centric, and
- adopts a <quote>client-server</quote> model.</para>
-
- <para>In the X model, the
- <quote>X server</quote> runs on the computer that has the keyboard,
- monitor, and mouse attached. The server's responsibility includes tasks such as managing
- the display, handling input from the keyboard and mouse, and other
- input or output devices (i.e., a <quote>tablet</quote> can be used as
- an input device, and a video projector may be an alternative output
- device).
- Each X application (such as <application>XTerm</application>, or
- <application>&netscape;</application>) is a <quote>client</quote>. A
- client sends messages to the server such as <quote>Please draw a
- window at these coordinates</quote>, and the server sends back
- messages such as <quote>The user just clicked on the OK
- button</quote>.</para>
-
- <para>In a home or small
- office environment, the X server and the X clients commonly run on
- the same computer. However, it is perfectly possible to run the X
- server on a less powerful desktop computer, and run X applications
- (the clients) on, say, the powerful and expensive machine that serves
- the office. In this scenario the communication between the X client
- and server takes place over the network.</para>
-
- <para>This confuses some people, because the X terminology is
- exactly backward to what they expect. They expect the <quote>X
- server</quote> to be the big powerful machine down the hall, and
- the <quote>X client</quote> to be the machine on their desk.</para>
-
- <para>It is important to remember that the X server is the machine with the monitor and
- keyboard, and the X clients are the programs that display the
- windows.</para>
-
- <para>There is 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 certainly possible to
- run an X server on µsoft.windows; or Apple's &macos;, and there are
- various free and commercial applications available that do exactly
- that.</para>
- </sect2>
-
- <sect2>
- <title>The Window Manager</title>
-
- <para>The X design philosophy is much like the &unix; design philosophy,
- <quote>tools, not policy</quote>. This means that X does not try to
- dictate how a task is to be accomplished. Instead, tools are provided
- to the user, and it is the user's responsibility to decide how to use
- those tools.</para>
-
- <para>This philosophy extends to X not dictating what windows should
- look like on screen, how to move them around with the mouse, what
- keystrokes should be used to move between windows (i.e.,
- <keycombo action="simul">
- <keycap>Alt</keycap>
- <keycap>Tab</keycap>
- </keycombo>, in the case of µsoft.windows;), what the title bars
- on each window should look like, whether or not they have close
- buttons on them, and so on.</para>
-
- <para>Instead, X delegates this responsibility to an application called
- a <quote>Window Manager</quote>. There are dozens of window
- managers available for X: <application>AfterStep</application>,
- <application>Blackbox</application>, <application>ctwm</application>,
- <application>Enlightenment</application>,
- <application>fvwm</application>, <application>Sawfish</application>,
- <application>twm</application>,
- <application>Window Maker</application>, and more. Each of these
- window managers provides a different look and feel; some of them
- support <quote>virtual desktops</quote>; some of them allow customized
- keystrokes to manage the desktop; some have a <quote>Start</quote>
- button or similar device; some are <quote>themeable</quote>, allowing
- a complete change of look-and-feel by applying a new theme. These
- window managers, and many more, are available in the
- <filename>x11-wm</filename> category of the Ports Collection.</para>
-
- <para>In addition, the <application>KDE</application> and
- <application>GNOME</application> desktop environments both have their
- own window managers which integrate with the desktop.</para>
-
- <para>Each window manager also has a different configuration mechanism;
- some expect configuration file written by hand, others feature
- GUI tools for most of the configuration tasks; at least one
- (<application>Sawfish</application>) has a configuration file written
- in a dialect of the Lisp language.</para>
-
- <note>
- <title>Focus Policy</title>
-
- <para>Another feature the window manager is responsible for is the
- mouse <quote>focus policy</quote>. Every windowing system
- needs some means of choosing a window to be actively receiving
- keystrokes, and should visibly indicate which window is active as
- well.</para>
-
- <para>A familiar focus policy is called <quote>click-to-focus</quote>.
- This is the model utilized by µsoft.windows;, in which a window
- becomes active upon receiving a mouse click.</para>
-
- <para>X does not support any particular focus policy. Instead, the
- window manager controls which window has the focus at any one time.
- Different window managers will support different focus methods. All
- of them support click to focus, and the majority of them support
- several others.</para>
-
- <para>The most popular focus policies are:</para>
-
- <variablelist>
- <varlistentry>
- <term>focus-follows-mouse</term>
-
- <listitem>
- <para>The window that is under the mouse pointer is the
- window that has the focus. This may not necessarily be
- the window that is on top of all the other windows.
- The focus is changed by pointing at another window, there
- is no need to click in it as well.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>sloppy-focus</term>
-
- <listitem>
- <para>This policy is a small extension to focus-follows-mouse.
- With focus-follows-mouse, if the mouse is moved over the
- root window (or background) then no window has the focus,
- and keystrokes are simply lost. With sloppy-focus, focus is
- only changed when the cursor enters a new window, and not
- when exiting the current window.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>click-to-focus</term>
-
- <listitem>
- <para>The active window is selected by mouse click. The
- window may then be <quote>raised</quote>, and appear in
- front of all other windows. All keystrokes will now be
- directed to this window, even if the cursor is moved to
- another window.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Many window managers support other policies, as well as
- variations on these. Be sure to consult the documentation for
- the window manager itself.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Widgets</title>
-
- <para>The X approach of providing tools and not policy extends to the
- widgets seen on screen in each application.</para>
-
- <para><quote>Widget</quote> is a term for all the items in the user
- interface that can be clicked or manipulated in some way; buttons,
- check boxes, radio buttons, icons, lists, and so on. µsoft.windows;
- calls these <quote>controls</quote>.</para>
-
- <para>µsoft.windows; and Apple's &macos; both have a very rigid widget
- policy. Application developers are supposed to ensure that their
- applications share a common look and feel. With X, it was not
- considered sensible to mandate a particular graphical style, or set
- of widgets to adhere to.</para>
-
- <para>As a result, do not expect X applications to have a common
- look and feel. There are several popular widget sets and
- variations, including the original Athena widget set from MIT,
- <application>&motif;</application> (on which the widget set in
- µsoft.windows; was modeled, all bevelled edges and three shades of
- grey), <application>OpenLook</application>, and others.</para>
-
- <para>Most newer X applications today will use a modern-looking widget
- set, either Qt, used by <application>KDE</application>, or
- GTK+, used by the
- <application>GNOME</application>
- project. In this respect, there is some convergence in
- look-and-feel of the &unix; desktop, which certainly makes things
- easier for the novice user.</para>
- </sect2>
+ <para><quote>Widget set</quote> is a term representing all of
+ the items in the graphical interface that can be clicked or
+ manipulated in some way, such as check boxes, radio buttons,
+ and icons. Different window managers use different widget
+ sets. Examples of widget sets include Qt, used by
+ <application>KDE</application>, and GTK+, used by
+ <application>GNOME</application>.</para>
</sect1>
<sect1 id="x-install">
- <title>Installing X11</title>
+ <title>Installing Xorg</title>
- <para><application>&xorg;</application> is the default X11
- implementation for &os;. <application>&xorg;</application> is
- the X server of the open source X Window System implementation released by the X.Org
- Foundation. <application>&xorg;</application> is based on the code of
- <application>&xfree86; 4.4RC2</application> and X11R6.6.
- The version of <application>&xorg;</application> currently
- available in the &os; Ports Collection is &xorg.version;.</para>
+ <para>To build and install <application>&xorg;</application>
+ from the Ports Collection:</para>
- <para>To build and install <application>&xorg;</application> from the
- Ports Collection:</para>
-
<screen>&prompt.root; <userinput>cd /usr/ports/x11/xorg</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -317,32 +148,16 @@
available.</para>
</note>
- <para>Alternatively, X11
- can be installed directly from packages.
- Binary packages to use with &man.pkg.add.1; tool are also available for
- X11. When the remote fetching
- feature of &man.pkg.add.1; is used, the version number of the
- package must be removed. &man.pkg.add.1; will automatically fetch
- the latest version of the application.</para>
+ <para>Alternatively, to install the complete
+ <application>&xorg;</application> binary package which
+ includes all of the X servers, clients, and fonts:</para>
- <para>So to fetch and install the package of
- <application>&xorg;</application>, simply type:</para>
-
<screen>&prompt.root; <userinput>pkg_add -r xorg</userinput></screen>
- <note><para>The examples above will install the complete
- X11 distribution including the
- servers, clients, fonts etc. Separate packages and ports of X11
- are also
- available.</para>
-
- <para>To install a minimal X11 distribution you can alternatively install
- <filename role="package">x11/xorg-minimal</filename>.</para>
- </note>
-
- <para>The rest of this chapter will explain how to configure
- X11, and how to set up a productive desktop
- environment.</para>
+ <para>To instead install a minimal
+ <application>&xorg;</application> distribution, use the
+ <filename role="package">x11/xorg-minimal</filename> port or
+ package.</para>
</sect1>
<sect1 id="x-config">
@@ -356,133 +171,99 @@
</author>
</authorgroup>
</sect1info>
- <title>X11 Configuration</title>
+ <title>Xorg Configuration</title>
-
<indexterm><primary>&xorg;</primary></indexterm>
<indexterm><primary>X11</primary></indexterm>
- <sect2>
- <title>Before Starting</title>
+ <para>Xorg is often self-configuring. However, depending upon
+ the video hardware and the support provided by its driver, it
+ may or may not be possible to configure optimal resolution for
+ the hardware. At this time, driver support is as
+ follows:</para>
- <para>In most cases, X11 is self-configuring. Those with older
- or unusual equipment may find it helpful to gather some
- hardware information before beginning configuration.</para>
+ <itemizedlist>
+ <listitem>
+ <para>NVIDIA: several NVIDIA drivers are
+ available in the <filename>x11</filename> category of the
+ &os; Ports Collection. Install the driver that matches the
+ model of the NVIDIA hardware.</para>
+ </listitem>
+ <listitem>
+ <para>Intel: as of &os; 9.1, 3D acceleration on
+ most Intel graphics, including IronLake, SandyBridge,
+ and IvyBridge, is supported. Due to the current KMS
+ implementation, it is not possible to switch between the
+ graphical console and a virtual console using
+ <userinput>Crtl+Alt+F#.</userinput></para>
+ </listitem>
+ <listitem>
+ <para>ATI/Radeon: 3D acceleration will not work on
+ ATI or Radeon cards until &os; completes its TTM work.
+ These cards will need to be configured with the 2D driver,
+ and if that does not work, with the Vesa
+ driver.</para>
+ </listitem>
+ <listitem>
+ <para>Optimus: currently there is no switching
+ support between the two graphics adapters provided by
+ Optimus. Optimus implementations vary, so &os; may or may
+ not be able to successfully load a graphics driver on all
+ hardware. If you get a blank screen, check if the BIOS has
+ an option to disable one of the graphics adapters or to set
+ <quote>discrete</quote> mode.</para>
+ </listitem>
+ </itemizedlist>
- <itemizedlist>
- <listitem><para>Monitor sync frequencies</para></listitem>
- <listitem><para>Video card chipset</para></listitem>
- <listitem><para>Video card memory</para></listitem>
- </itemizedlist>
+ <para>The video card chipset should be autodetected and used to
+ select the proper video driver. It is beneficial for the user
+ to be aware of which chipset is installed should
+ autodetection not provide the desired result. Additionally,
+ video card memory and the driver determine the maximum
+ resolution and color depth which can be displayed.</para>
- <indexterm>
- <primary>horizontal sync frequency</primary>
- </indexterm>
- <indexterm>
- <primary>horizontal scan rate</primary>
- <see>horizontal sync frequency</see>
- </indexterm>
- <indexterm><primary>refresh rate</primary></indexterm>
- <indexterm>
- <primary>vertical sync frequency</primary>
- <see>refresh rate</see>
- </indexterm>
- <indexterm>
- <primary>vertical scan rate</primary>
- <see>refresh rate</see>
- </indexterm>
+ <para><application>&xorg;</application>
+ uses <acronym>HAL</acronym> to autodetect keyboards and mice.
+ The <filename role="package">sysutils/hal</filename> and
+ <filename role="package">devel/dbus</filename> ports are
+ installed as dependencies of <filename
+ role="package">x11/xorg</filename>, but must be enabled by
+ adding these entries to
+ <filename>/etc/rc.conf</filename>:</para>
- <para>Screen resolution and refresh rate are determined by the
- monitor's horizontal and vertical sync frequencies. Almost
- all monitors support electronic autodetection of these values.
- A few monitors do not provide these values, and the
- specifications must be determined from the printed manual
- or manufacturer web site.</para>
-
- <para>The video card chipset is also autodetected, and used to
- select the proper video driver. It is beneficial for the user
- to be aware of which chipset is installed for when
- autodetection does not provide the desired result.</para>
-
- <para>Video card memory determines the maximum resolution and
- color depth which can be displayed.</para>
- </sect2>
-
- <sect2>
- <title>Configuring X11</title>
-
- <para><application>&xorg;</application>
- uses <acronym>HAL</acronym> to autodetect keyboards and mice.
- The <filename role="package">sysutils/hal</filename> and
- <filename role="package">devel/dbus</filename> ports are installed
- as dependencies of <filename role="package">x11/xorg</filename>, but
- must be enabled by the following entries in the
- <filename>/etc/rc.conf</filename> file:</para>
-
<programlisting>hald_enable="YES"
dbus_enable="YES"</programlisting>
- <para>These services should be started (either manually or by
- rebooting) before further <application>&xorg;</application>
- configuration or use is attempted.</para>
+ <para>These services should be started before attempting
+ <application>&xorg;</application>
+ configuration:</para>
- <para><application>&xorg;</application> can
- often work without any further configuration steps by simply typing at
- prompt:</para>
+ <screen>&prompt.root; <userinput>service hald start</userinput>
+&prompt.root; <userinput>service dbus start</userinput></screen>
- <screen>&prompt.user; <userinput>startx</userinput></screen>
+ <para>Once these services are started, check if
+ <application>&xorg;</application> auto-configures itself by
+ typing:</para>
- <para>The automatic configuration may fail to work with some hardware,
- or may not set things up quite as desired. In these cases, manual
- configuration will be necessary.</para>
+ <screen>&prompt.root; <userinput>Xorg -configure</userinput></screen>
- <note>
- <para>Desktop environments like
- <application>GNOME</application>,
- <application>KDE</application> or
- <application>Xfce</application> have tools allowing the user
- to easily set the screen parameters such as the resolution.
- So if the default configuration is not acceptable and you
- planned to install a desktop environment then just continue
- with the installation of the desktop environment and use the
- appropriate screen settings tool.</para>
- </note>
-
- <para>Configuration of X11 is
- a multi-step process. The first step is to build an initial
- configuration file.
- As the super user, simply
- run:</para>
-
- <screen>&prompt.root; <userinput>Xorg -configure</userinput></screen>
-
- <para>This will generate an
- X11 configuration skeleton file in the
+ <para>This will generate a configuration file in the
<filename>/root</filename> directory called
- <filename>xorg.conf.new</filename> (whether you &man.su.1; or
- do a direct login affects the inherited supervisor
- <envar>$HOME</envar> directory variable). The
- X11 program will attempt to probe
- the graphics hardware on the system and write a
- configuration file to load the proper drivers for the detected
- hardware on the target system.</para>
+ <filename>xorg.conf.new</filename>. Next, test that the
+ automatically generated configuration file works with the
+ graphics hardware by typing:</para>
- <para>The next step is to test the existing
- configuration to verify that <application>&xorg;</application>
- can work with the graphics
- hardware on the target system. Type:</para>
+ <screen>&prompt.root; <userinput>Xorg -config /root/xorg.conf.new </userinput></screen>
- <screen>&prompt.root; <userinput>Xorg -config xorg.conf.new -retro</userinput></screen>
-
<para>If a black and grey grid and an X mouse cursor appear,
- the configuration was successful. To exit the test, switch to the
- virtual console used to start it by pressing
+ the configuration was successful. To exit the test, switch
+ to the virtual console used to start it by pressing
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>F<replaceable>n</replaceable></keycap>
- </keycombo> (<keycap>F1</keycap> for the first virtual console)
- and press
+ </keycombo> (<keycap>F1</keycap> for the first virtual
+ console) and press
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>C</keycap>
@@ -523,400 +304,498 @@
<para>The following line will also have to be added to
<filename>xorg.conf.new</filename>, in the
- <literal>ServerLayout</literal> or <literal>ServerFlags</literal>
- section:</para>
+ <literal>ServerLayout</literal> or
+ <literal>ServerFlags</literal> section:</para>
<programlisting>Option "DontZap" "off"</programlisting>
</note>
- <para>If the mouse does not work, you will need to first
- configure it before proceeding. See <xref linkend="mouse"/>
- in the &os; install chapter. In recent
- <application>Xorg</application> versions,
- the <literal>InputDevice</literal> sections in
- <filename>xorg.conf</filename> are ignored in favor of the
- autodetected devices. To restore the old behavior, add the
- following line to the <literal>ServerLayout</literal> or
- <literal>ServerFlags</literal> section of this file:</para>
+ <para>If the test is unsuccessful, skip ahead to the
+ <link linkend="x11-understanding">troubleshooting
+ section</link>. Once the test is successful, copy the
+ configuration file to
+ <filename>/etc/X11/xorg.conf</filename>:</para>
- <programlisting>Option "AutoAddDevices" "false"</programlisting>
+ <screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>
- <para>Input devices may then be configured as in previous versions,
- along with any other options needed (e.g., keyboard layout
- switching).</para>
+ <para> The next step is to install a window manager or desktop
+ environment as described in the next section.</para>
+ </sect1>
- <note>
- <para>As previously explained
- the <application>hald</application> daemon will, by default,
- automatically detect your keyboard. There are chances that
- your keyboard layout or model will not be correct, desktop
- environments like <application>GNOME</application>,
- <application>KDE</application> or
- <application>Xfce</application> provide tools to configure
- the keyboard. However, it is possible to set the keyboard
- properties directly either with the help of the
- &man.setxkbmap.1; utility or with a
- <application>hald</application>'s configuration rule.</para>
+ <sect1 id="x11-wm">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Valentino</firstname>
+ <surname>Vaschetto</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ <!-- June 2001 -->
+ </authorgroup>
+ </sect1info>
- <para>For example if one wants to use a PC 102 keys keyboard
- coming with a french layout, we have to create a keyboard
- configuration file for <application>hald</application>
- called <filename>x11-input.fdi</filename> and saved in the
- <filename
- class="directory">/usr/local/etc/hal/fdi/policy</filename>
- directory. This file should contain the following
- lines:</para>
+ <title>Installing a Desktop Environment</title>
- <programlisting><?xml version="1.0" encoding="iso-8859-1"?>
-<deviceinfo version="0.2">
- <device>
- <match key="info.capabilities" contains="input.keyboard">
- <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
- <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
- </match>
- </device>
-</deviceinfo></programlisting>
+ <para>This section describes how to install some of the available
+ desktop environments on &os;. The next section will
+ demonstrate how to start an installed desktop environment or
+ window manager using a display manager.</para>
- <para>If this file already exists, just copy and add to your
- file the lines regarding the keyboard configuration.</para>
+ <sect2 id="x11-wm-gnome">
+ <title>GNOME</title>
- <para>You will have to reboot your machine to force
- <application>hald</application> to read this file.</para>
+ <indexterm><primary>GNOME</primary></indexterm>
+ <para><application>GNOME</application> is an easy-to-use
+ desktop environment which includes a panel for starting
+ applications, a desktop where data and applications can be
+ placed, and a set of standard desktop tools and
+ applications. Two versions of GNOME are available, GNOME2
+ and GNOME3, and the user interface differs significantly
+ between the two versions. GNOME2 is available for &os; and
+ GNOME3 is currently being ported to &os;. More information
+ about installing, configuring, and managing
+ <application>GNOME</application> and the status of the
+ GNOME3 porting project can be found at the web site of the
+ <ulink url="http://www.FreeBSD.org/gnome">&os; GNOME
+ Project.</ulink></para>
- <para>It is possible to do the same configuration from an X
- terminal or a script with this command line:</para>
+ <para>To install the <application>GNOME</application>
+ binary package, type:</para>
- <screen>&prompt.user; <userinput>setxkbmap -model pc102 -layout fr</userinput></screen>
+ <screen>&prompt.root; <userinput>pkg_add -r gnome2</userinput></screen>
- <para>The
- <filename>/usr/local/share/X11/xkb/rules/base.lst</filename>
- file lists the various keyboard, layouts and options
- available.</para>
- </note>
+ <para>Alternately, to build the
+ <application>GNOME</application> port:</para>
- <indexterm><primary>X11 tuning</primary></indexterm>
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/gnome2</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
- <para>The <filename>xorg.conf.new</filename>
- configuration file may now be tuned to taste. Open the file in a text editor such
- as &man.emacs.1; or &man.ee.1;. If the monitor is an older
- or unusual model that does not support autodetection of
- sync frequencies, those settings can
- be added to <filename>xorg.conf.new</filename>
- under the <literal>"Monitor"</literal> section:</para>
+ <para><application>GNOME</application>
+ requires the <filename>/proc</filename> filesystem to be
+ mounted. Add this line to <filename>/etc/fstab</filename>
+ to mount &man.procfs.5; automatically during system
+ boot:</para>
- <programlisting>Section "Monitor"
- Identifier "Monitor0"
- VendorName "Monitor Vendor"
- ModelName "Monitor Model"
- HorizSync 30-107
- VertRefresh 48-120
-EndSection</programlisting>
+ <programlisting>proc /proc procfs rw 0 0</programlisting>
- <para>Most monitors support sync frequency autodetection, making
- manual entry of these values unnecessary. For the few
- monitors that do not support autodetection, avoid potential
- damage by only entering values provided by the
- manufacturer.</para>
+ <para>To mount <filename>/proc</filename> without rebooting,
+ type:</para>
- <para>X allows DPMS (Energy Star) features to be used with capable
- monitors. The &man.xset.1; program controls the time-outs and can force
- standby, suspend, or off modes. If you wish to enable DPMS features
- for your monitor, you must add the following line to the monitor
- section:</para>
+<screen>&prompt.root; <userinput>mount -t procfs proc /proc</userinput></screen>
+ </sect2>
- <programlisting>
- Option "DPMS"</programlisting>
+ <sect2 id="x11-wm-kde">
+ <title>KDE</title>
- <indexterm>
- <primary><filename>xorg.conf</filename></primary>
- </indexterm>
+ <indexterm><primary>KDE</primary></indexterm>
- <para>While the <filename>xorg.conf.new</filename>
- configuration file is still open in an editor, select
- the default resolution and color depth desired. This is
- defined in the <literal>"Screen"</literal> section:</para>
+ <para><application>KDE</application> is an easy-to-use
+ desktop environment which includes an integrated help
+ system, internationalization, centralized desktop
+ configuration utilities, and a web browser called
+ <application>Konqueror</application>. More information on
+ <application>KDE</application> can be found at the <ulink
+ url="http://www.kde.org/">KDE website</ulink>. &os;
+ specific information and resources can be found at the
+ <ulink url="http://freebsd.kde.org/">KDE/&os;
+ initiative</ulink> website.</para>
- <programlisting>Section "Screen"
- Identifier "Screen0"
- Device "Card0"
- Monitor "Monitor0"
- DefaultDepth 24
- SubSection "Display"
- Viewport 0 0
- Depth 24
- Modes "1024x768"
- EndSubSection
-EndSection</programlisting>
+ <para>Two versions of <application>KDE</application> are
+ available for &os;. While version 3 is still available, it
+ is unmaintained and partially broken. Version 4 is the
+ recommended choice as it is punctually updated. KDE4
+ is the version that is discussed in this section.</para>
- <para>The <literal>DefaultDepth</literal> keyword describes
- the color depth to run at by default. This can be overridden
- with the <option>-depth</option> command line switch to
- &man.Xorg.1;.
- The <literal>Modes</literal> keyword
- describes the resolution to run at for the given color depth.
- Note that only VESA standard modes are supported as defined by
- the target system's graphics hardware.
- In the example above, the default color depth is twenty-four
- bits per pixel. At this color depth, the accepted resolution is
- 1024 by 768
- pixels.</para>
+ <para>To install the <application>KDE 4</application>
+ binary package, type:</para>
- <para>Finally, write the configuration file and test it using
- the test mode given above.</para>
+ <screen>&prompt.root; <userinput>pkg_add -r kde4</userinput></screen>
- <note>
- <para>One of the tools available to assist you during
- troubleshooting process are the X11 log files, which contain
- information on each device that the X11 server attaches to.
- <application>&xorg;</application> log file names are in the format
- of <filename>/var/log/Xorg.0.log</filename>. The exact name
- of the log can vary from <filename>Xorg.0.log</filename> to
- <filename>Xorg.8.log</filename> and so forth.</para>
- </note>
+ <para>To instead build <application>KDE 4</application> from
+ ports, type:</para>
- <para>If all is well, the configuration
- file needs to be installed in a common location where
- &man.Xorg.1; can find it.
- This is typically <filename>/etc/X11/xorg.conf</filename> or
- <filename>/usr/local/etc/X11/xorg.conf</filename>.</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde4</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
- <screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>
+ <sect2 id="x11-wm-xfce">
+ <title>Xfce</title>
- <para>The X11 configuration process is now
- complete. <application>&xorg;</application> may be now
- started with the &man.startx.1; utility.
- The X11 server may also be started with the use of
- &man.xdm.1;.</para>
+ <para><application>Xfce</application> is a lightweight desktop
+ environment meant for those with older hardware or who want
+ a simple, efficient desktop which is easy to use and
+ configure. Some of <application>Xfce</application>'s
+ features include a main panel with menus, applets and
+ application launchers, a file manager, and a sound manager.
+ More information on <application>Xfce</application>
+ can be found on the <ulink url="http://www.xfce.org/">Xfce
+ website</ulink>.</para>
+
+ <para>To install the <application>Xfce</application> binary
+ package, type:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r xfce4</userinput></screen>
+
+ <para>Alternatively, to build the port:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11-wm/xfce4</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
</sect2>
+ </sect1>
+ <sect1 id="x-xdm">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Seth</firstname>
+ <surname>Kingsley</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Display Managers</title>
+
+ <para>Several display managers are available for &os;. A
+ Display manager provides a graphical login screen and
+ automatically loads a window manager once the user successfully
+ inputs their username and password.</para>
+
+ <para>This section demonstrates how to configure the Gnome
+ Display Manager (GDM), KDE Display Manager (KDM), and X Display
+ Manager (XDM). It also describes how a user can manually start
+ their preferred window manager using
+ <application>startx</application>.</para>
+
<sect2>
- <title>Advanced Configuration Topics</title>
+ <title>GDM</title>
- <sect3>
- <title>Configuration with &intel; <literal>i810</literal> Graphics Chipsets</title>
+ <para>The GNOME Display Manager (<application>GDM</application>)
+ is installed as part of the <application>GNOME</application>
+ desktop, although it is disabled by default. It can be
+ configured to start at system boot by adding this line to
+ <filename>/etc/rc.conf</filename>:</para>
- <indexterm><primary>Intel i810 graphic chipset</primary></indexterm>
+ <programlisting>gdm_enable="YES"</programlisting>
- <para>Configuration with &intel; i810 integrated chipsets
- requires the <devicename>agpgart</devicename>
- AGP programming interface for X11
- to drive the card. See the &man.agp.4; driver manual page
- for more information.</para>
+ <para>To start the service now, type:</para>
- <para>This will allow configuration of the hardware as any other
- graphics board. Note on systems without the &man.agp.4;
- driver compiled in the kernel, trying to load the module
- with &man.kldload.8; will not work. This driver has to be
- in the kernel at boot time through being compiled in or
- using <filename>/boot/loader.conf</filename>.</para>
- </sect3>
+ <screen>&prompt.root; <userinput>service gdm start</userinput></screen>
- <sect3>
- <title>Adding a Widescreen Flatpanel to the Mix</title>
+ <para>It is often desirable to start all
+ <application>GNOME</application> services together with
+ <application>GDM</application>. To achieve this, add the
+ following line to <filename>/etc/rc.conf</filename>:</para>
- <indexterm><primary>widescreen flatpanel configuration</primary></indexterm>
+ <programlisting>gnome_enable="YES"</programlisting>
+ </sect2>
+ <sect2>
+ <title>KDM</title>
- <para>This section assumes a bit of advanced configuration knowledge.
- If attempts to use the standard configuration tools above have not
- resulted in a working configuration, there is information enough
- in the log files to be of use in getting the setup working.
- Use of a text editor will be necessary.</para>
+ <indexterm><primary>KDE</primary>
+ <secondary>display manager</secondary></indexterm>
+ <para>The installation of <application>KDE</application>
+ includes the <application>KDM</application> login manager.
+ In addition to starting <application>KDE</application>,
+ <application>KDM</application> can be configured to start
+ other installed window managers. During login, users can
+ choose which window manager to log into.</para>
- <para>Current widescreen (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et.al.)
- formats support 16:10 and 10:9 formats or aspect ratios that can
- be problematic. Examples of some common screen resolutions for
- 16:10 aspect ratios are:</para>
+ <para>To configure <application>KDM</application>, mount
+ &man.procfs.5; then add the following line to
+ <filename>/etc/rc.conf</filename>: MORE CONFIGURATION
+ NEEDED?</para>
- <itemizedlist>
- <listitem><para>2560x1600</para></listitem>
- <listitem><para>1920x1200</para></listitem>
- <listitem><para>1680x1050</para></listitem>
- <listitem><para>1440x900</para></listitem>
- <listitem><para>1280x800</para></listitem>
- </itemizedlist>
+ <programlisting>kdm4_enable="YES"</programlisting>
+ </sect2>
+ <sect2>
+ <title>XDM</title>
- <para>At some point, it will be as easy as adding one of these
- resolutions as a possible <literal>Mode</literal> in the <literal>Section
- "Screen"</literal> as such:</para>
+ <indexterm><primary>X Display Manager</primary></indexterm>
- <programlisting>Section "Screen"
-Identifier "Screen0"
-Device "Card0"
-Monitor "Monitor0"
-DefaultDepth 24
-SubSection "Display"
- Viewport 0 0
- Depth 24
- Modes "1680x1050"
-EndSubSection
-EndSection</programlisting>
+ <para>The X Display Manager (<application>XDM</application>)
+ provides a graphical interface for choosing an X server to log
+ into.</para>
- <para><application>&xorg;</application> is smart enough to pull the
- resolution information from the widescreen via I2C/DDC information
- so it knows what the monitor can handle as far as frequencies
- and resolutions.</para>
+ <para><application>XDM</application> can be installed using
+ the <filename role="package">x11/xdm</filename> binary
+ package or port. Once installed, the
+ <filename>/usr/local/bin/xdm</filename>
+ program can be run at any time as <username>root</username>
+ in order to start managing the X display on the local machine.
+ To configure <application>XDM</application> to run at system
+ boot, edit this line in <filename>/etc/ttys</filename>:</para>
- <para>If those <literal>ModeLines</literal> do not exist in the drivers,
- one might need to give <application>&xorg;</application> a little hint.
- Using <filename>/var/log/Xorg.0.log</filename> one can extract
- enough information to manually create a <literal>ModeLine</literal> that
- will work. Simply look for information resembling this:</para>
+ <screen>ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen>
- <programlisting>(II) MGA(0): Supported additional Video Mode:
-(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
-(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
-(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
-(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz</programlisting>
+ <para>Change the <literal>off</literal> to
+ <literal>on</literal> and restart &man.init.8; using the
+ directions in <xref linkend="term-hup"/>. The first field,
+ <literal>ttyv8</literal>, indicates that
+ <application>XDM</application> will start on the ninth
+ virtual terminal which can be accessed using
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F9</keycap>.</para>
- <para>This information is called EDID information. Creating a
- <literal>ModeLine</literal> from this is just a matter of putting the
- numbers in the correct order:</para>
+ <para>The <application>XDM</application> configuration directory
+ is located in <filename>/usr/local/lib/X11/xdm</filename>.
+ In this directory there are several files used to change the
+ behavior and appearance of <application>XDM</application>.
+ The syntax and usage of the following files are described in
+ more detail in &man.xdm.1;.</para>
- <programlisting>ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para><filename>Xaccess</filename></para>
+ <para>Client authorization ruleset for controlling XDMCP
+ connections from remote machines. The protocol for
+ connecting to <application>XDM</application>-controlled
+ displays is called the X Display Manager Connection
+ Protocol (XDMCP). This file is ignored unless
+ <filename>xdm-config</filename> is changed to listen
+ for remote connections. By default, this file does not
+ allow any clients to connect.</para>
+ </listitem>
+ <listitem>
+ <para><filename>Xresources</filename></para>
+ <para>Default X resource values for configuring the
+ appearance of the display chooser and login screens.
+ The format is identical to
+ <filename>app-defaults</filename> described in the
+ <application>Xorg</application> documentation.</para>
+ </listitem>
- <para>So that the <literal>ModeLine</literal> in <literal>Section "Monitor"</literal>
- for this example would look like this:</para>
+ <listitem>
+ <para><filename>Xservers</filename></para>
+ <para>List of remote and local displays the login menu
+ should provide as choices.</para>
+ </listitem>
- <programlisting>Section "Monitor"
-Identifier "Monitor1"
-VendorName "Bigname"
-ModelName "BestModel"
-ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
-Option "DPMS"
-EndSection</programlisting>
+ <listitem>
+ <para><filename>Xsession</filename></para>
+ <para>Default session script which
+ <application>XDM</application> runs after a user has
+ logged in. Normally each user will have a customized
+ session script in <filename>~/.xsession</filename> that
+ overrides this script.</para>
+ </listitem>
- <para>Now having completed these simple editing steps, X should start
- on your new widescreen monitor.</para>
+ <listitem>
+ <para><filename>Xsetup_</filename>*</para>
+ <para>Script to indicate which applications
+ automatically run when launching the user's graphical
+ environment. There is a script for each display being
+ used, named <filename>Xsetup_</filename> followed by
+ the local display number. Typically these scripts
+ will run one or two programs such as
+ <application>xconsole</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>xdm-config</filename></para>
+ <para>Global configuration for all displays running
+ on this machine. This file contains settings, in the
+ form of <filename>app-defaults</filename>, which are
+ applicable to every display.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>xdm-errors</filename></para>
+ <para>Errors generated by the X server program. If a
+ display that <application>XDM</application> is trying
+ to start hangs, this is a good place to look for error
+ messages. These messages are also written to the
+ user's <filename>~/.xsession-errors</filename> on
+ a per-session basis.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>xdm-pid</filename></para>
+ <para>The process ID of the currently running XDM.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The default configuration is a simple rectangular login
+ window with the hostname of the machine displayed at the
+ top in a large font and <quote>Login:</quote> and
+ <quote>Password:</quote> prompts below.</para>
+
+ <para>To start <application>GNOME</application> using
+ the <application>XDM</application> display manager, create
+ or edit <filename>.xsession</filename> in your home
+ directory so that it contains these lines:</para>
+
+ <screen>#!/bin/sh</screen>
+
+ <screen>/usr/local/bin/gnome-session</screen>
+
+ <para> Make sure that the file is executable by running this
+ command:</para>
+
+ <screen>&prompt.user; <userinput>chmod +x ~/.xsession</userinput></screen>
+
+ <para>To start <application>Xfce</application> using the
+ <application>XDM</application> display manager, instead use
+ this as the second line in your
+ <filename>.xsession</filename>:</para>
+
+ <screen>/usr/local/bin/startxfce4</screen>
+
+ <sect3>
+ <title>Running a Network Display Server</title>
+
+ <para>To configure other clients to connect to the X
+ server over the network, edit the access control rules and
+ enable the connection listener. To configure
+ <application>XDM</application> to listen for all network
+ connections, quote out this line in
+ <filename>xdm-config</filename> by adding a
+ <keycap>!</keycap> at the beginning of the line:</para>
+
+ <screen>DisplayManager.requestPort: 0</screen>
+
+ <para>Examples of stricter access controls can be found in the
+ example entries in <filename>Xaccess</filename> and
+ &man.xdm.1;. After saving the configuration changes which
+ are appropriate to your network, restart
+ <application>XDM</application> to apply the new
+ configuration.</para>
</sect3>
</sect2>
- </sect1>
- <sect1 id="x-fonts">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Murray</firstname>
- <surname>Stokely</surname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </sect1info>
- <title>Using Fonts in X11</title>
+ <sect2>
+ <title>Using <application>startx</application></title>
+ <para>A display manager is not required as any window manager
+ can be started from the command line using
+ <application>startx</application>. To configure
+ <application>startx</application>, create a file named
+ <filename>.xinitrc</filename> in the home directory of your
+ regular user account. If that file already exists, replace
+ the line that starts the current window manager with one
+ that starts the desired window manager.</para>
+
+ <para>For example, to start <application>GNOME</application>,
+ use this line:</para>
+
+ <programlisting>/usr/local/bin/gnome-session</programlisting>
+
+ <para> To start <application>KDE</application>, use this
+ line:</para>
+
+<programlisting>exec /usr/local/kde4/bin/startkde</programlisting>
+
+ <para>To start <application>Xfce</application>,use
+ this line:</para>
+
+ <programlisting>/usr/local/bin/startxfce4</programlisting>
+
+ <para>To configure any other window manager, determine the
+ full path to the window manager's executable and add that as
+ the line.</para>
+
+ <para>To start the window manager listed in
+ <filename>~/.xinitrc</filename>, type
+ <application>startx</application>.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="x-fonts">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Configuring Fonts</title>
+
+ <para>This section demonstrates how to install and configure
+ Type1, &truetype;, and anti-aliased fonts on &os;.</para>
+
<sect2 id="type1">
- <title>Type1 Fonts</title>
- <para>The default fonts that ship with
- X11 are less than ideal for typical
- desktop publishing applications. Large presentation fonts show up
- jagged and unprofessional looking, and small fonts in
- <application>&netscape;</application> are almost completely unintelligible.
- However, there are several free, high quality Type1 (&postscript;) fonts
- available which can be readily used
- with X11. For instance, the URW font collection
- (<filename role="package">x11-fonts/urwfonts</filename>) includes
- high quality versions of standard type1 fonts (<trademark class="registered">Times Roman</trademark>,
- <trademark class="registered">Helvetica</trademark>, <trademark class="registered">Palatino</trademark> and others). The Freefonts collection
- (<filename role="package">x11-fonts/freefonts</filename>) includes
- many more fonts, but most of them are intended for use in
- graphics software such as the <application>Gimp</application>, and are not
- complete enough to serve as screen fonts. In addition,
- X11 can be configured to use
- &truetype; fonts with a minimum of effort. For more details on
- this, see the &man.X.7; manual page or the
- <link linkend="truetype">section on &truetype; fonts</link>.</para>
+ <title>Type1 Fonts</title>
- <para>To install the above Type1 font collections from the
- Ports Collection, run the following commands:</para>
+ <para>The default fonts provided by
+ <application>Xorg</application> are less than ideal for
+ desktop use. There are several free, high quality Type1
+ &postscript; fonts which can be installed using &os; binary
+ packages or ports. For instance, the URW font collection
+ (<filename role="package">x11-fonts/urwfonts</filename>)
+ includes high quality versions of the <trademark
+ class="registered">Times Roman</trademark>,
+ <trademark class="registered">Helvetica</trademark>, and
+ <trademark class="registered">Palatino</trademark> fonts.
+ The Freefonts collection (<filename
+ role="package">x11-fonts/freefonts</filename>) includes
+ many fonts suited for use in graphics software such as the
+ <application>Gimp</application>. Many more fonts are
+ available in the <filename>x11-fonts</filename> category of
+ the Ports Collection</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
+ <para>After installing the desired fonts, configure the X server
+ to detect the new fonts when it starts up. Add a line to
+ <filename>/etc/X11/xorg.conf</filename> containing the
+ full path to the fonts directory. As an example, the
+ following line adds the path to the installed <filename
+ role="package">x11-fonts/urwfonts</filename>:</para>
- <para>And likewise with the freefont or other collections. To have the X
- server detect these fonts, add an appropriate line to the
- X server configuration file (<filename>/etc/X11/xorg.conf</filename>),
- which reads:</para>
-
<programlisting>FontPath "/usr/local/lib/X11/fonts/URW/"</programlisting>
- <para>Alternatively, at the command line in the X session
- run:</para>
+ <para>To tell the X server to use the new fonts now, run this
+ command as the superuser:</para>
<screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/URW</userinput>
&prompt.user; <userinput>xset fp rehash</userinput></screen>
- <para>This will work but will be lost when the X session is closed,
- unless it is added to the startup file (<filename>~/.xinitrc</filename>
- for a normal <command>startx</command> session,
- or <filename>~/.xsession</filename> when logging in through a
- graphical login manager like <application>XDM</application>).
- A third way is to use the new
- <filename>/usr/local/etc/fonts/local.conf</filename> file: see the
- section on <link linkend="antialias">anti-aliasing</link>.</para>
</sect2>
<sect2 id="truetype">
- <title>&truetype; Fonts</title>
+ <title>&truetype; Fonts</title>
- <indexterm><primary>TrueType Fonts</primary></indexterm>
- <indexterm><primary>fonts</primary>
- <secondary>TrueType</secondary>
- </indexterm>
+ <indexterm><primary>TrueType Fonts</primary></indexterm>
+ <indexterm><primary>fonts</primary>
+ <secondary>TrueType</secondary>
+ </indexterm>
- <para><application>&xorg;</application> has built in support
- for rendering &truetype; fonts. There are two different modules
- that can enable this functionality. The freetype module is used
- in this example because it is more consistent with the other font
- rendering back-ends. To enable the freetype module just add the
- following line to the <literal>"Module"</literal> section of the
- <filename>/etc/X11/xorg.conf</filename> file.</para>
+ <para><application>&xorg;</application> can be configured to
+ render &unix; and &windows; &truetype; fonts. To
+ enable the freetype module, add the following line to the
+ <literal>"Module"</literal> section of
+ <filename>/etc/X11/xorg.conf</filename>:</para>
- <programlisting>Load "freetype"</programlisting>
+ <programlisting>Load "freetype"</programlisting>
- <para>Now make a directory for the &truetype; fonts (for example,
- <filename>/usr/local/lib/X11/fonts/TrueType</filename>)
- and copy all of the &truetype; fonts into this directory. Keep in
- mind that &truetype; fonts cannot be directly taken from a
- &macintosh;; they must be in &unix;/&ms-dos;/&windows; format for use by
- X11. Once the files have been
- copied into this directory, use
- <application>ttmkfdir</application> to create a
- <filename>fonts.dir</filename> file, so that the X font renderer
- knows that these new files have been installed.
- <command>ttmkfdir</command> is available from the FreeBSD
+ <para>Next, make a subdirectory of
+ <filename>/usr/local/lib/X11/fonts/TrueType/</filename>
+ and copy the &truetype; fonts into the subdirectory. Then,
+ run the following <application>ttmkfdir</application> command
+ to create <filename>fonts.dir</filename> so that the X font
+ renderer knows that new fonts have been installed.
+ <application>ttmkfdir</application> is available from the &os;
Ports Collection as
<filename role="package">x11-fonts/ttmkfdir</filename>.</para>
<screen>&prompt.root; <userinput>cd /usr/local/lib/X11/fonts/TrueType</userinput>
&prompt.root; <userinput>ttmkfdir -o fonts.dir</userinput></screen>
- <para>Now add the &truetype; directory to the font
- path. This is just the same as described above for <link
- linkend="type1">Type1</link> fonts, that is, use</para>
-
- <screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/TrueType</userinput>
-&prompt.user; <userinput>xset fp rehash</userinput></screen>
-
- <para>or add a <literal>FontPath</literal> line to the
- <filename>xorg.conf</filename> file.</para>
-
- <para>That's it. Now <application>&netscape;</application>,
- <application>Gimp</application>,
- <application>&staroffice;</application>, and all of the other X
- applications should now recognize the installed &truetype;
- fonts. Extremely small fonts (as with text in a high resolution
- display on a web page) and extremely large fonts (within
- <application>&staroffice;</application>) will look much better
- now.</para>
+ <para>To load the new fonts whenever the X server starts, add
+ the &truetype; path to <filename>/etc/X11/xorg.conf</filename>
+ as described above for <link linkend="type1">Type1</link>
+ fonts.</para>
</sect2>
<sect2 id="antialias">
- <sect2info>
- <authorgroup>
- <author>
- <firstname>Joe Marcus</firstname>
- <surname>Clarke</surname>
- <contrib>Updated by </contrib>
- <!-- May 2003 -->
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Joe Marcus</firstname>
+ <surname>Clarke</surname>
+ <contrib>Updated by </contrib>
+ <!-- May 2003 -->
</author>
</authorgroup>
</sect2info>
@@ -926,57 +805,48 @@
<indexterm><primary>fonts</primary>
<secondary>anti-aliased</secondary></indexterm>
- <para>All fonts in X11 that are found
- in <filename>/usr/local/lib/X11/fonts/</filename> and
+ <para>The X FreeType (Xft) library is used by the freetype module
+ to provide anti-aliased fonts. All fonts within
+ <filename>/usr/local/lib/X11/fonts/</filename> and
<filename>~/.fonts/</filename> are automatically
made available for anti-aliasing to Xft-aware applications.
Most recent applications are Xft-aware, including
- <application>KDE</application>, <application>GNOME</application>, and
+ <application>KDE</application>,
+ <application>GNOME</application>, and
<application>Firefox</application>.</para>
<para>In order to control which fonts are anti-aliased, or to
- configure anti-aliasing properties, create (or edit, if it
- already exists) the file
+ configure anti-aliasing properties, create or edit
<filename>/usr/local/etc/fonts/local.conf</filename>. Several
advanced features of the Xft font system can be tuned using
- this file; this section describes only some simple
- possibilities. For more details, please see
- &man.fonts-conf.5;.</para>
+ this file. For more examples, see &man.fonts-conf.5;.</para>
<indexterm><primary>XML</primary></indexterm>
- <para>This file must be in XML format. Pay careful attention to
- case, and make sure all tags are properly closed. The file
- begins with the usual XML header followed by a DOCTYPE
- definition, and then the <literal><fontconfig></literal> tag:</para>
+ <para>This file must be in XML format. Pay careful attention
+ to case, and make sure all tags are properly closed. The
+ file begins with the usual XML header followed by a DOCTYPE
+ definition, and then the <literal><fontconfig></literal>
+ tag:</para>
- <programlisting>
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <fontconfig>
- </programlisting>
+ <para>If you wish to add another directory outside of the two
+ default font directory trees, add a line containing the full
+ path to
+ <filename>/usr/local/etc/fonts/local.conf</filename>
+ using this format:</para>
- <para>As previously stated, all fonts in
- <filename>/usr/local/lib/X11/fonts/</filename> as well as
- <filename>~/.fonts/</filename> are already made available to
- Xft-aware applications. If you wish to add another directory
- outside of these two directory trees, add a line similar to the
- following to
- <filename>/usr/local/etc/fonts/local.conf</filename>:</para>
+<programlisting><dir>/path/to/my/fonts</dir></programlisting>
- <programlisting><dir>/path/to/my/fonts</dir></programlisting>
+ <para>After adding new font directories, run the following command
+ to rebuild the font caches:</para>
- <para>After adding new fonts, and especially new font directories,
- you should run the following command to rebuild the font
- caches:</para>
-
<screen>&prompt.root; <userinput>fc-cache -f</userinput></screen>
- <para>Anti-aliasing makes borders slightly fuzzy, which makes very
- small text more readable and removes <quote>staircases</quote> from
- large text, but can cause eyestrain if applied to normal text. To
- exclude font sizes smaller than 14 point from anti-aliasing, include
- these lines:</para>
+ <para>Anti-aliasing makes borders slightly fuzzy, which makes
+ very small text more readable and removes staircases from large
+ text, but can cause eyestrain if applied to normal text. To
+ exclude font sizes smaller than 14 point from anti-aliasing,
+ add these lines:</para>
<programlisting> <match target="font">
<test name="size" compare="less">
@@ -1000,11 +870,12 @@
<para>Spacing for some monospaced fonts may also be inappropriate
with anti-aliasing. This seems to be an issue with
- <application>KDE</application>, in particular. One possible fix for
- this is to force the spacing for such fonts to be 100. Add the
- following lines:</para>
+ <application>KDE</application>, in particular. One possible
+ fix is to force the spacing for such fonts to be 100 by
+ adding the following lines:</para>
- <programlisting> <match target="pattern" name="family">
+ <programlisting> <match target="pattern"
+name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
@@ -1019,12 +890,9 @@
<edit name="family" mode="assign">
<string>mono</string>
</edit>
- </match></programlisting>
+ </match>
- <para>(this aliases the other common names for fixed fonts as
- <literal>"mono"</literal>), and then add:</para>
-
- <programlisting> <match target="pattern" name="family">
+ <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
@@ -1036,11 +904,10 @@
<para>Certain fonts, such as Helvetica, may have a problem when
anti-aliased. Usually this manifests itself as a font that
seems cut in half vertically. At worst, it may cause
- applications to
- crash. To avoid this, consider adding the following to
- <filename>local.conf</filename>:</para>
+ applications to crash. To avoid this, consider adding the
+ following lines:</para>
- <programlisting> <match target="pattern" name="family">
+<programlisting> <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
@@ -1049,695 +916,248 @@
</edit>
</match> </programlisting>
- <para>Once you have finished editing
- <filename>local.conf</filename> make sure you end the file
- with the <literal></fontconfig></literal> tag. Not doing this will cause
- your changes to be ignored.</para>
+ <indexterm><primary>LCD screen</primary></indexterm>
+ <indexterm><primary>Fonts</primary>
+ <secondary>LCD screen</secondary></indexterm>
- <para>Finally, users can add their own settings via their personal
- <filename>.fonts.conf</filename> files. To do this, each user should
- simply create a <filename>~/.fonts.conf</filename>. This file must
- also be in XML format.</para>
+ <para>When using an LCD screen, sub-pixel sampling may be
+ desired as it treats the horizontally separated red, green
+ and blue components separately to improve horizontal
+ resolution. To enable this, add these lines:</para>
- <indexterm><primary>LCD screen</primary></indexterm>
- <indexterm><primary>Fonts</primary>
- <secondary>LCD screen</secondary></indexterm>
-
- <para>One last point: with an LCD screen, sub-pixel sampling may be
- desired. This basically treats the (horizontally separated)
- red, green and blue components separately to improve the horizontal
- resolution; the results can be dramatic. To enable this, add the
- line somewhere in the <filename>local.conf</filename> file:</para>
-
- <programlisting>
- <match target="font">
+ <programlisting> <match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
- </match>
- </programlisting>
+ </match></programlisting>
- <note>
- <para>Depending on the sort of display,
- <literal>rgb</literal> may need to be changed to <literal>bgr</literal>,
- <literal>vrgb</literal> or <literal>vbgr</literal>: experiment and
- see which works best.</para>
- </note>
- </sect2>
- </sect1>
+ <para>Depending on the display, <literal>rgb</literal> may
+ need to be changed to <literal>bgr</literal>,
+ <literal>vrgb</literal> or <literal>vbgr</literal>.</para>
- <sect1 id="x-xdm">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Seth</firstname>
- <surname>Kingsley</surname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </sect1info>
- <title>The X Display Manager</title>
- <sect2>
- <title>Overview</title>
+ <para>Before saving your edits, make sure the file ends
+ with the <literal></fontconfig></literal> tag. Not
+ doing this will cause the changes to be ignored.</para>
- <indexterm><primary>X Display Manager</primary></indexterm>
- <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>,
- 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
- connected by a network. <application>XDM</application> provides
- a graphical interface for choosing which display server to
- connect to, and entering authorization information such as a
- login and password combination.</para>
-
- <para>Think of <application>XDM</application> as
- providing the same functionality to the user as the
- &man.getty.8; utility (see <xref linkend="term-config"/> for
- details). That is, it performs system logins to the display
- being connected to and then runs a session manager on behalf of
- the user (usually an X window
- manager). <application>XDM</application> then waits for this
- program to exit, signaling that the user is done and should be
- logged out of the display. At this point,
- <application>XDM</application> can display the login and display
- chooser screens for the next user to login.</para>
+ <para>Users can add their own settings by creating
+ <filename>.fonts.conf</filename> in their home
+ directory.</para>
</sect2>
+ </sect1>
- <sect2>
- <title>Using XDM</title>
+ <sect1 id="x11-understanding">
+ <title>Troubleshooting</title>
- <para>To start using <application>XDM</application>, install the
- <filename role="package">x11/xdm</filename> port (it is not
- installed by default in recent versions of
- <application>&xorg;</application>).
- The <application>XDM</application> daemon program may then be
- found in <filename>/usr/local/bin/xdm</filename>. This program
- can be run at any time as <username>root</username> and it will
- start managing the X display on the local machine. If
- <application>XDM</application> is to be run every
- time the machine boots up, a convenient way to do this is by
- adding an entry to <filename>/etc/ttys</filename>. For more
- information about the format and usage of this file, see <xref
- linkend="term-etcttys"/>. There is a line in the default
- <filename>/etc/ttys</filename> file for running the
- <application>XDM</application> daemon on a virtual terminal:</para>
+ <para>This section describes some common troubleshooting scenarios
+ for when <filename>Xorg</filename> does not automatically detect
+ and configure the hardware.</para>
- <screen>ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen>
-
- <para>By default this entry is disabled; in order to enable it
- change field 5 from <literal>off</literal> to
- <literal>on</literal> and restart &man.init.8; using the
- directions in <xref linkend="term-hup"/>. The first field, the
- name of the terminal this program will manage, is
- <literal>ttyv8</literal>. This means that
- <application>XDM</application> will start running on the 9th
- virtual terminal.</para>
- </sect2>
-
<sect2>
- <title>Configuring XDM</title>
+ <title>Mouse</title>
- <para>The <application>XDM</application> configuration directory
- is located in <filename>/usr/local/lib/X11/xdm</filename>. In
- this directory there are several files used to change the
- behavior and appearance of
- <application>XDM</application>. Typically these files will
- be found:</para>
+ <para>If the mouse does not work, configure it first using the
+ instructions in <xref linkend="mouse"/> of the &os; install
+ chapter. In recent <application>Xorg</application> versions,
+ the <literal>InputDevice</literal> sections in
+ <filename>/etc/X11/xorg.conf</filename> are ignored in favor
+ of the autodetected devices. To force the old behavior, add
+ the following line to the <literal>ServerLayout</literal> or
+ <literal>ServerFlags</literal> section of this file:</para>
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>File</entry>
- <entry>Description</entry>
- </row>
- </thead>
+ <programlisting>Option "AutoAddDevices" "false"</programlisting>
- <tbody>
- <row>
- <entry><filename>Xaccess</filename></entry>
- <entry>Client authorization ruleset.</entry>
- </row>
-
- <row>
- <entry><filename>Xresources</filename></entry>
- <entry>Default X resource values.</entry>
- </row>
-
- <row>
- <entry><filename>Xservers</filename></entry>
- <entry>List of remote and local displays to manage.</entry>
- </row>
-
- <row>
- <entry><filename>Xsession</filename></entry>
- <entry>Default session script for logins.</entry>
- </row>
-
- <row>
- <entry><filename>Xsetup_</filename>*</entry>
- <entry>Script to launch applications before the login
- interface.</entry>
- </row>
-
- <row>
- <entry><filename>xdm-config</filename></entry>
- <entry>Global configuration for all displays running on
- this machine.</entry>
- </row>
-
- <row>
- <entry><filename>xdm-errors</filename></entry>
- <entry>Errors generated by the server program.</entry>
- </row>
-
- <row>
- <entry><filename>xdm-pid</filename></entry>
- <entry>The process ID of the currently running XDM.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Also in this directory are a few scripts and programs used
- to set up the desktop when <application>XDM</application> is
- running. The purpose of each of these files will be briefly
- described. The exact syntax and usage of all of these files is
- described in &man.xdm.1;.</para>
-
- <para>The default configuration is a simple rectangular login
- window with the hostname of the machine displayed at the top in
- a large font and <quote>Login:</quote> and
- <quote>Password:</quote> prompts below. This is a good starting
- point for changing the look and feel of
- <application>XDM</application> screens.</para>
-
- <sect3>
- <title>Xaccess</title>
-
- <para>The protocol for connecting to
- <application>XDM</application>-controlled displays is called
- the X Display Manager Connection Protocol (XDMCP). This file
- is a ruleset for controlling XDMCP connections from remote
- machines. It is ignored unless the <filename>xdm-config</filename>
- is changed to listen for remote connections. By default, it does
- not allow any clients to connect.</para>
- </sect3>
-
- <sect3>
- <title>Xresources</title>
- <para>This is an application-defaults file for the display
- chooser and login screens. In it, the appearance
- of the login program can be modified. The format is identical
- to the app-defaults file described in the
- X11 documentation.</para>
- </sect3>
-
- <sect3>
- <title>Xservers</title>
- <para>This is a list of the remote displays the chooser should
- provide as choices.</para>
- </sect3>
-
- <sect3>
- <title>Xsession</title>
- <para>This is the default session script for
- <application>XDM</application> to run after a user has logged
- in. Normally each user will have a customized session script
- in <filename>~/.xsession</filename> that overrides this
- script.</para>
- </sect3>
-
- <sect3>
- <title>Xsetup_*</title>
- <para>These 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 number (for instance
- <filename>Xsetup_0</filename>). Typically these scripts will
- run one or two programs in the background such as
- <command>xconsole</command>.</para>
- </sect3>
-
- <sect3>
- <title>xdm-config</title>
- <para>This contains settings in the form of app-defaults
- that are applicable to every display that this installation
- manages.</para>
- </sect3>
-
- <sect3>
- <title>xdm-errors</title>
- <para>This contains the output of the X servers that
- <application>XDM</application> is trying to run. If a display
- that <application>XDM</application> is trying to start hangs
- for some reason, this is a good place to look for error
- messages. These messages are also written to the user's
- <filename>~/.xsession-errors</filename> file on a per-session
- basis.</para>
- </sect3>
+ <para>Input devices may then be configured manually within
+ the file.</para>
</sect2>
-
<sect2>
- <title>Running a Network Display Server</title>
+ <title>Keyboard</title>
- <para>In order for other clients to connect to the display
- server, you must edit the access control rules and enable the connection
- listener. By default these are set to conservative values.
- To make <application>XDM</application> listen for connections,
- first comment out a line in the <filename>xdm-config</filename>
- file:</para>
+ <para>If <application>hald</application> incorrectly detects
+ the keyboard layout or model, use the graphical tools provided
+ by desktop environments like <application>GNOME</application>,
+ <application>KDE</application> or
+ <application>Xfce</application> to configure the keyboard.
+ It is also possible to set the keyboard properties directly
+ using the &man.setxkbmap.1; utility or with a
+ <application>hald</application> configuration rule.</para>
- <screen>! SECURITY: do not listen for XDMCP or Chooser requests
-! Comment out this line if you want to manage X terminals with xdm
-DisplayManager.requestPort: 0</screen>
+ <para>For example, to set a PC 102 keys keyboard with a French
+ layout, create or edit the keyboard configuration file for
+ <application>hald</application> called <filename
+class="directory">/usr/local/etc/hal/fdi/policy/x11-input.fdi</filename>.
+ This file should contain the following lines:</para>
- <para>and then restart <application>XDM</application>. Remember that
- comments in app-defaults files begin with a <quote>!</quote>
- character, not the usual <quote>#</quote>. More strict
- access controls may be desired — look at the example
- entries in <filename>Xaccess</filename>, and refer to the
- &man.xdm.1; manual page for further information.</para>
- </sect2>
+ <programlisting><?xml version="1.0"
+encoding="iso-8859-1"?>
+<deviceinfo version="0.2">
+ <device>
+ <match key="info.capabilities" contains="input.keyboard">
+ <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
+ <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
+ </match>
+ </device>
+</deviceinfo></programlisting>
- <sect2>
- <title>Replacements for XDM</title>
+ <para>Reboot the system to test the configuration.</para>
- <para>Several replacements for the default
- <application>XDM</application> program exist. One of them,
- <application>KDM</application> (bundled with
- <application>KDE</application>) is described later in this
- chapter. The <application>KDM</application> display manager 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>
- </sect1>
+ <para>Alternately, you can temporarily configure this
+ setting for the current session by typing this command:</para>
- <sect1 id="x11-wm">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Valentino</firstname>
- <surname>Vaschetto</surname>
- <contrib>Contributed by </contrib>
- </author>
- <!-- June 2001 -->
- </authorgroup>
- </sect1info>
+ <screen>&prompt.user; <userinput>setxkbmap -model pc102 -layout fr</userinput></screen>
- <title>Desktop Environments</title>
+ <para>
+ <filename>/usr/local/share/X11/xkb/rules/base.lst</filename>
+ lists the available keyboard, layouts, and options.</para>
+ </sect2>
+ <sect2>
+ <title>Monitor</title>
- <para>This section describes the different desktop environments
- available for X on FreeBSD. A <quote>desktop environment</quote>
- can mean anything ranging from a simple window manager to a
- complete suite of desktop applications, such as
- <application>KDE</application> or <application>GNOME</application>.</para>
+ <indexterm><primary>X11 tuning</primary></indexterm>
- <sect2 id="x11-wm-gnome">
- <title>GNOME</title>
+ <para>Most monitors support sync frequency autodetection. If
+ the monitor is an older or unusual model that does not
+ support autodetection, those settings can be manually added
+ under the <literal>"Monitor"</literal> section. To avoid
+ potential damage, only enter the values provided by the
+ manufacturer. </para>
- <sect3 id="x11-wm-gnome-about">
- <title>About GNOME</title>
+ <programlisting>Section "Monitor"
+ Identifier "Monitor0"
+ VendorName "Monitor Vendor"
+ ModelName "Monitor Model"
+ HorizSync 30-107
+ VertRefresh 48-120
+EndSection</programlisting>
- <indexterm><primary>GNOME</primary></indexterm>
- <para><application>GNOME</application> is a user-friendly
- desktop environment that enables users to easily use and
- configure their computers. <application>GNOME</application>
- includes a panel (for starting applications and displaying
- status), a desktop (where data and applications can be
- placed), a set of standard desktop tools and applications, and
- a set of conventions that make it easy for applications to
- cooperate and be consistent with each other. Users of other
- operating systems or environments should feel right at home
- using the powerful graphics-driven environment that
- <application>GNOME</application> provides. More
- information regarding <application>GNOME</application> on
- FreeBSD can be found on the <ulink
- url="http://www.FreeBSD.org/gnome">FreeBSD GNOME
- Project</ulink>'s web site. The web site also contains fairly
- comprehensive FAQs about installing, configuring, and managing
- <application>GNOME</application>.</para>
- </sect3>
+ <para><application>Xorg</application> allows DPMS (Energy Star)
+ features to be used with capable monitors. The &man.xset.1;
+ program controls the time-outs and can force standby, suspend,
+ or off modes. To enable DPMS, add the following line to the
+ <literal>"Monitor"</literal> section:</para>
- <sect3 id="x11-wm-gnome-install">
- <title>Installing GNOME</title>
+ <programlisting>Option "DPMS"</programlisting>
- <para>The software can be easily installed from a package or the
- Ports Collection:</para>
+ <indexterm>
+ <primary><filename>xorg.conf</filename></primary>
+ </indexterm>
- <para>To install the <application>GNOME</application> package
- from the network, simply type:</para>
+ <para>Then, define the resolution and color depth in the
+ <literal>"Screen"</literal> section:</para>
- <screen>&prompt.root; <userinput>pkg_add -r gnome2</userinput></screen>
+ <programlisting>Section "Screen"
+ Identifier "Screen0"
+ Device "Card0"
+ Monitor "Monitor0"
+ DefaultDepth 24
+ SubSection "Display"
+ Viewport 0 0
+ Depth 24
+ Modes "1024x768"
+ EndSubSection
+EndSection</programlisting>
- <para>To build <application>GNOME</application> from source, use
- the ports tree:</para>
+ <para>The <literal>DefaultDepth</literal> keyword describes
+ the color depth to run by default. This can be overridden
+ with the <option>-depth</option> command line switch to
+ &man.Xorg.1;. The <literal>Modes</literal> keyword describes
+ the resolution to run for the given color depth. Note that only
+ VESA standard modes are supported as defined by the graphics
+ hardware. In the example above, the default color depth is
+ twenty-four bits per pixel. At this color depth, the accepted
+ resolution is 1024 by 768 pixels.</para>
+ </sect2>
+ <sect2>
+ <title>Configuration with &intel; <literal>i810</literal>
+ Graphics Chipsets</title>
- <screen>&prompt.root; <userinput>cd /usr/ports/x11/gnome2</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
+ <indexterm><primary>Intel i810 graphic chipset</primary></indexterm>
- <para>For proper operation, <application>GNOME</application> requires
- the <filename>/proc</filename> filesystem to be mounted. Add</para>
+ <para>&intel; i810 integrated chipsets
+ require the &man.agp.4; driver to be compiled in the kernel.
+ The <filename>GENERIC</filename> kernel includes this driver
+ so this is only a consideration for custom kernels.</para>
+ </sect2>
- <programlisting>proc /proc procfs rw 0 0</programlisting>
+ <sect2>
+ <title>Configuring a Widescreen Flatpanel</title>
- <para>to <filename>/etc/fstab</filename> to mount
- &man.procfs.5; automatically during
- startup.</para>
+ <indexterm><primary>widescreen flatpanel configuration</primary></indexterm>
- <para>Once <application>GNOME</application> is installed,
- the X server must be told to start
- <application>GNOME</application> instead of a default window
- manager.</para>
+ <para>Widescreen formats such as WSXGA, WSXGA+, WUXGA, WXGA, and
+ WXGA+ support 16:10 and 10:9 formats or aspect ratios that
+ may need to be manually configured. Examples of common screen
+ resolutions for 16:10 aspect ratios include:</para>
- <para>The easiest way to start
- <application>GNOME</application> is with
- <application>GDM</application>, the GNOME Display Manager.
- <application>GDM</application> is installed as part
- of the <application>GNOME</application> desktop, although
- it is disabled by default. It can be enabled by adding this
- line to <filename>/etc/rc.conf</filename>:</para>
+ <itemizedlist>
+ <listitem><para>2560x1600</para></listitem>
+ <listitem><para>1920x1200</para></listitem>
+ <listitem><para>1680x1050</para></listitem>
+ <listitem><para>1440x900</para></listitem>
+ <listitem><para>1280x800</para></listitem>
+ </itemizedlist>
- <programlisting>gdm_enable="YES"</programlisting>
+ <para>These resolutions can be added as a possible
+ <literal>Mode</literal> in the <literal>Section
+ "Screen"</literal>:</para>
- <para>Once you have rebooted,
- <application>GDM</application> will start automatically.</para>
+ <programlisting>Section "Screen"
+Identifier "Screen0"
+Device "Card0"
+Monitor "Monitor0"
+DefaultDepth 24
+SubSection "Display"
+ Viewport 0 0
+ Depth 24
+ Modes "1680x1050"
+EndSubSection
+EndSection</programlisting>
- <para>It is often desirable to start all
- <application>GNOME</application> services together with
- <application>GDM</application>. To achieve this, add the
- following line to <filename>/etc/rc.conf</filename>:</para>
+ <para><application>&xorg;</application> can detect the
+ widescreen's I2C/DDC information so that it knows which
+ frequencies and resolutions the monitor can handle.</para>
- <programlisting>gnome_enable="YES"</programlisting>
+ <para>If those <literal>ModeLines</literal> do not exist in
+ the driver, use <filename>/var/log/Xorg.0.log</filename> to
+ extract the information to manually create a working
+ <literal>ModeLine</literal> entry. Look
+ for information resembling this:</para>
- <para><application>GNOME</application> may also be started
- from the command-line by properly configuring a file named
- <filename>.xinitrc</filename>.
- If a custom <filename>.xinitrc</filename> is already in
- place, simply replace the line that starts the current window
- manager with one that starts
- <application>/usr/local/bin/gnome-session</application> instead.
- If nothing special has been done to the configuration file,
- then it is enough simply to type:</para>
+ <programlisting>(II) MGA(0): Supported additional Video Mode:
+(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
+(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
+(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
+(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz</programlisting>
- <screen>&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" > ~/.xinitrc</userinput></screen>
+ <para>This information is called EDID information. Creating a
+ <literal>ModeLine</literal> from this is a matter of putting
+ the numbers in the correct order:</para>
- <para>Next, type <command>startx</command>, and the
- <application>GNOME</application> desktop environment will be
- started.</para>
+ <programlisting>ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings></programlisting>
- <note><para>If an older display manager, like
- <application>XDM</application>, is being used, this will not work.
- Instead, create an executable <filename>.xsession</filename>
- file with the same command in it. To do this, edit the file
- and replace the existing window manager command with
- <application>/usr/local/bin/gnome-session</application>:
- </para></note>
+ <para>The <literal>ModeLine</literal> in
+ <literal>Section "Monitor"</literal> for this example would
+ look like this:</para>
- <screen>&prompt.user; <userinput>echo "#!/bin/sh" > ~/.xsession</userinput>
-&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" >> ~/.xsession</userinput>
-&prompt.user; <userinput>chmod +x ~/.xsession</userinput></screen>
+ <programlisting>Section "Monitor"
+Identifier "Monitor1"
+VendorName "Bigname"
+ModelName "BestModel"
+ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
+Option "DPMS"
+EndSection</programlisting>
+ </sect2>
+ <sect2>
+ <title>Testing <filename>/etc/X11/xorg.conf</filename> Changes</title>
- <para>Yet another option is to configure the display manager to
- allow choosing the window manager at login time; the section on
- <link linkend="x11-wm-kde-details">KDE details</link>
- explains how to do this for <application>KDM</application>, the
- display manager of <application>KDE</application>.</para>
- </sect3>
- </sect2>
+ <para>Whenever you make a configuration change to
+ <filename>/etc/X11/xorg.conf></filename>, restart the X server
+ to test the configuraiton change.</para>
- <sect2 id="x11-wm-kde">
- <title>KDE</title>
-
- <indexterm><primary>KDE</primary></indexterm>
- <sect3 id="x11-wm-kde-about">
- <title>About KDE</title>
-
- <para><application>KDE</application> is an easy to use
- contemporary desktop environment. Some of the things that
- <application>KDE</application> brings to the user are:</para>
-
- <itemizedlist>
- <listitem>
- <para>A beautiful contemporary desktop</para>
- </listitem>
-
- <listitem>
- <para>A desktop exhibiting complete network transparency</para>
- </listitem>
-
- <listitem>
- <para>An integrated help system allowing for convenient,
- consistent access to help on the use of the
- <application>KDE</application> desktop and its
- applications</para>
- </listitem>
-
- <listitem>
- <para>Consistent look and feel of all
- <application>KDE</application> applications</para>
- </listitem>
-
- <listitem>
- <para>Standardized menu and toolbars, keybindings, color-schemes,
- etc.</para>
- </listitem>
-
- <listitem>
- <para>Internationalization: <application>KDE</application>
- is available in more than 55 languages</para>
- </listitem>
-
- <listitem>
- <para>Centralized, consistent, dialog-driven desktop
- configuration</para>
- </listitem>
-
- <listitem>
- <para>A great number of useful
- <application>KDE</application> applications</para>
- </listitem>
- </itemizedlist>
-
- <para><application>KDE</application> comes with a web browser called
- <application>Konqueror</application>, which is
- 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
- website</ulink>. For FreeBSD specific information and
- resources on <application>KDE</application>, consult
- the <ulink url="http://freebsd.kde.org/">KDE/FreeBSD
- initiative</ulink>'s website.</para>
-
- <para>There are two versions of <application>KDE</application>
- available on FreeBSD. Version 3 has been around for a long
- time, and is still available in the Ports Collection though
- it's now unmaintained and partially broken. Version 4 is
- punctually updated and is the default choice for
- <application>KDE</application> users. They can even be
- installed side by side.</para>
- </sect3>
-
- <sect3 id="x11-wm-kde-install">
- <title>Installing KDE</title>
-
- <para>Just as with <application>GNOME</application> or any
- other desktop environment, the software can be easily installed
- from a package or the Ports Collection:</para>
-
- <para>To install the <application>KDE 3</application> package
- from the network, type:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r kde</userinput></screen>
-
- <para>To install the <application>KDE 4</application> package
- from the network, type:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r kde4</userinput></screen>
-
- <para>&man.pkg.add.1; will automatically fetch the latest version
- of the application.</para>
-
- <para>To build <application>KDE 3</application> from source,
- use the ports tree:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde3</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>To build <application>KDE 4</application> from source,
- use the ports tree:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde4</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>After <application>KDE</application> has been installed,
- the X server must be told to launch this application
- instead of the default window manager. This is accomplished
- by editing the <filename>.xinitrc</filename> file:</para>
-
- <para>For <application>KDE 3</application>:</para>
-
- <screen>&prompt.user; <userinput>echo "exec startkde" > ~/.xinitrc</userinput></screen>
-
- <para>For <application>KDE 4</application>:</para>
-
- <screen>&prompt.user; <userinput>echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc</userinput></screen>
-
- <para>Now, whenever the X Window System is invoked with
- <command>startx</command>,
- <application>KDE</application> will be the desktop.</para>
-
- <para>If a display manager such as
- <application>XDM</application> is being used, the
- configuration is slightly different. 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-kde-details">
- <title>More Details on KDE</title>
-
- <para>Now that <application>KDE</application> is installed on
- the system, most things can be discovered through the
- help pages, or just by pointing and clicking at various menus.
- &windows; or &mac; users will feel quite at home.</para>
-
- <para>The best reference for <application>KDE</application> is
- the on-line documentation. <application>KDE</application>
- comes with its own web browser,
- <application>Konqueror</application>, dozens of useful
- 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-kde-kdm">
- <title>The KDE Display Manager</title>
-
- <indexterm><primary>KDE</primary>
- <secondary>display manager</secondary></indexterm>
- <para>An administrator of a multi-user system may wish to have
- a graphical login screen to welcome users.
- <link linkend="x-xdm">XDM</link> can be
- used, as described earlier. However,
- <application>KDE</application> includes an
- alternative, <application>KDM</application>, which is designed
- to look more attractive and include more login-time options.
- In particular, users can easily choose (via a menu) which
- desktop environment (<application>KDE</application>,
- <application>GNOME</application>, or something else) to run
- after logging on.</para>
-
- <para>To enable <application>KDM</application>, different files
- need to be edited depending on the version of
- <application>KDE</application>.</para>
-
- <para>For <application>KDE 3</application>, the <literal>ttyv8</literal>
- entry in <filename>/etc/ttys</filename> has to be adapted as
- follows:</para>
-
- <programlisting>ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure</programlisting>
-
- <para>For <application>KDE 4</application>, you have to mount
- &man.procfs.5; and add the following line to
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>kdm4_enable="YES"</programlisting>
- </sect3>
-
- </sect2>
-
- <sect2 id="x11-wm-xfce">
- <title>Xfce</title>
- <sect3 id="x11-wm-xfce-about">
- <title>About Xfce</title>
-
- <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
- configure. Visually, it looks very much like
- <application>CDE</application>, found on commercial &unix;
- systems. Some of <application>Xfce</application>'s features
- are:</para>
-
- <itemizedlist>
- <listitem>
- <para>A simple, easy-to-handle desktop</para>
- </listitem>
-
- <listitem>
- <para>Fully configurable via mouse, with drag and
- drop, etc.</para>
- </listitem>
-
- <listitem>
- <para>Main panel similar to <application>CDE</application>, with
- menus, applets and applications launchers</para>
- </listitem>
-
- <listitem>
- <para>Integrated window manager, file manager, sound manager,
- <application>GNOME</application> compliance module, and more</para>
- </listitem>
-
- <listitem>
- <para>Themeable (since it uses GTK+)</para>
- </listitem>
-
- <listitem>
- <para>Fast, light and efficient: ideal for older/slower machines
- or machines with memory limitations</para>
- </listitem>
- </itemizedlist>
-
- <para>More information on <application>Xfce</application>
- can be found on the <ulink url="http://www.xfce.org/">Xfce
- website</ulink>.</para>
- </sect3>
-
- <sect3 id="x11-wm-xfce-install">
- <title>Installing Xfce</title>
-
- <para>A binary package for <application>Xfce</application>
- exists (at the time of writing). To install, simply type:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r xfce4</userinput></screen>
-
- <para>Alternatively, to build from source, use the
- Ports Collection:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/x11-wm/xfce4</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Now, tell the X server to launch
- <application>Xfce</application> the next time X is started.
- Simply type this:</para>
-
- <screen>&prompt.user; <userinput>echo "/usr/local/bin/startxfce4" > ~/.xinitrc</userinput></screen>
-
- <para>The next time X is started,
- <application>Xfce</application> will be the desktop.
- As before, if a display manager like
- <application>XDM</application> is being used, create an
- <filename>.xsession</filename>, as described in the
- section on <link linkend="x11-wm-gnome">GNOME</link>, but
- with the <filename>/usr/local/bin/startxfce4</filename>
- command; or, configure the display manager to allow
- choosing a desktop at login time, as explained in
- the section on <link linkend="x11-wm-kde-kdm">kdm</link>.</para>
- </sect3>
- </sect2>
- </sect1>
-
+ <para>If your change did not work as expected, look for errors in
+ <filename>/var/log/Xorg.0.log</filename>.</para>
+ </sect2>
+</sect1>
</chapter>
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1357943512.96753.YahooMailClassic>
