<?xml version='1.0' encoding='UTF-8'?>

<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xfce-config.xml,v 1.6 2007/03/15 06:19:43 nightmorph Exp $ -->

<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<guide link="/doc/en/xfce-config.xml">

<title>The Xfce Configuration Guide</title>

<author title="Author">
  <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
</author>

<abstract>
This guide provides an extensive introduction to Xfce, a fast, lightweight,
full-featured desktop environment.
</abstract>

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>

<version>1.4</version>
<date>2007-03-14</date>

<chapter>
<title>Introduction</title>
<section>
<title>The Xfce desktop environment</title>
<body>

<p>
<uri link="http://www.xfce.org">Xfce</uri> is a fast, lightweight desktop
environment for Unix-like operating systems. It is designed for productivity,
and is quite configurable while still adhering to the <uri
link="http://www.freedesktop.org">Freedesktop</uri> specifications.
</p>

<p>
Unlike heavier desktop environments, such as Gnome and KDE, Xfce uses far fewer
system resources. Additionally, it offers greater modularity and fewer
dependencies; it takes up less space on your hard disk and takes less time to
install.
</p>

<p>
This guide will not only show you how to install and configure a minimal Xfce
environment, but will also explore options to create a full-featured desktop in
keeping with the Xfce philosophy: light, fast, and modular.
</p>

<p>
Additionally, this guide will show you how to <uri link="#upgrade">upgrade</uri>
from version 4.2 to 4.4.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Installing Xfce</title>
<section>
<title>The basics</title>
<body>

<p>
Before we install our fully-functional yet minimal desktop, let's take a moment
to review the basic packages we'll be emerging.
</p>

<table>
<tr>
  <th>Name</th>
  <th>Description</th>
</tr>
<tr>
  <ti>xfce4</ti>
  <ti>The base Xfce desktop environment</ti>
</tr>
<tr>
  <ti>xscreensaver</ti>
  <ti>
    A screensaver with powersaving features and the ability to lock the screen
    for security
  </ti>
</tr>
</table>

<p>
You're free to install any other packages you wish, but for now, we'll stick
with these suggestions for a fast, minimal working environment. Double check
your USE flags in <path>/etc/make.conf</path>; you'll probably at least want
<c>USE="dbus -gnome hal startup-notification"</c>.
</p>

<p>
Now, let's install Xfce.
</p>

<pre caption="Installing Xfce">
# <i>emerge -avt xfce4 xscreensaver</i>
</pre>

<p>
Next, add your regular user(s) to the <c>plugdev</c>, <c>cdrom</c>, <c>cdrw</c>,
and <c>usb</c> groups, so that they can take full advantage of <c>hal</c> and be
able to mount and use devices such as cameras, optical drives, and USB sticks.
</p>

<pre caption="Adding users to the hardware groups">
<comment>(Replace username with your actual user)</comment>
# <i>for x in plugdev cdrom cdrw usb ; do gpasswd -a username $x ; done</i>
</pre>

<p>
Next, update your environment variables:
</p>

<pre caption="Updating environment variables">
# <i>env-update &amp;&amp; source /etc/profile</i>
</pre>

<p>
Now start up <c>hald</c> and add it to the default runlevel:
</p>

<pre caption="Starting hald">
# <i>/etc/init.d/hald start</i>
# <i>rc-update add hald default</i>
</pre>

</body>
</section>
</chapter>

<chapter>
<title>Configuring Xfce</title>
<section>
<title>Starting Xfce</title>
<body>

<p>
Now that Xfce is now installed, we'll configure it to be the default desktop
environment when we issue the <c>startx</c> command. Exit your root shell and
log on as a regular user.
</p>

<pre caption="Setting Xfce as the default desktop environment">
$ <i>echo "exec startxfce4" > ~/.xinitrc</i>
</pre>

<p>
Now start your graphical environment by typing <c>startx</c>:
</p>

<pre caption="Starting Xfce">
$ <i>startx</i>
</pre>

<p>
Congratulations, and welcome to your new Xfce desktop environment. Go ahead,
explore it a bit. Then continue reading to learn how you can configure Xfce to
suit your needs.
</p>

</body>
</section>
<section>
<title>Program access</title>
<body>

<p>
You might notice right-clicking on the desktop shows you the menu of all your
applications. It's useful, but your desktop can easily be completely obscured by
open windows, making it hard to to launch a new program. So, one of the first
things you may wish to do is give yourself a handy application menu on your
panel. Right click on this panel, and choose "Add New Item". Scroll through the
list of choices and select "Xfce Menu". You can choose where you want it to be
displayed on your panel. When clicked, it displays the application/preferences
menu, providing a nicely categorized list of your installed programs.
</p>

</body>
</section>
<section>
<title>Sessions &amp; startup</title>
<body>

<p>
If you've installed (or plan to install) popular Gnome or KDE applications such
as <c>k3b</c>, <c>nautilus</c>, <c>kmail</c>, <c>evolution</c>, etc. then you
should make sure that Xfce launches the appropriate services for these at
startup. Navigate to Menu --> Settings --> Sessions &amp; Startup. On the
"Advanced" tab, select the appropriate checkbox. This might slightly increase
Xfce startup times, but it decreases load times for KDE and Gnome applications.
</p>

<p>
Xfce has the ability to save your session settings and running programs from the
"General" tab in the Sessions &amp; Startup menu. They can be automatically
saved when you logout, or Xfce can ask you each time. This feature is
particularly useful for undoing configuration mistakes. Accidentally killed a
panel? Just select "No" when prompted to save your current session, and the next
time you start Xfce, your old desktop is restored. Want to automatically launch
your open webbrowser, terminal, and email client the next time you login? Just
save your session before logging out.
</p>

<p>
You've now got a basic working environment installed and configured. But if
you're interested in doing more, then continue reading!
</p>

</body>
</section>
</chapter>

<chapter>
<title>Additional Applications</title>
<section>
<title>Panel plugins</title>
<body>

<p>
In this chapter, we'll discuss some useful plugins and applications for everyday
use within Xfce.
</p>

<p>
There are many plugins for the panel available in Portage; see for yourself with
<c>emerge --search xfce</c>. Though for the most part their names are self
explanatory, a few deserve some attention, as they are quite helpful. To use
them, simply <c>emerge</c> them. They'll be added to the list of available items
in the "Add New Item" menu shown when you right-click on the panel.
</p>

<ul>
  <li>
    <c>xfce4-mount</c> gives you a handy method of mounting devices listed in
    <path>/etc/fstab</path> just by clicking your mouse
  </li>
  <li>
    <c>xfce4-battery</c> is perfect for laptop users. It displays battery
    percentage, time remaining, power source (AC or battery), fan status,
    warnings, and can even be configured to execute commands at certain power
    levels. This feature can be used to put the laptop into hibernate mode when
    the battery is almost exhausted.
  </li>
  <li>
    <c>verve</c> is a small command line embedded into the panel. It's quicker
    than opening up another terminal when you want to run a command.
  </li>
  <li>
    <c>xfce4-mixer</c> is a volume control. It works with both ALSA and OSS
    sound applications.
  </li>
</ul>

<p>
If you can't find what you're looking for in the plugins specifically made for
Xfce, try searching through the list of Gnome panel applets! That's right, by
first emerging <c>xfce4-xfapplet</c>, you can install and run any applet made
for Gnome.
</p>

</body>
</section>
<section>
<title>Useful programs</title>
<body>

<p>
Xfce bundles a few useful applications, including <c>thunar</c>,
<c>terminal</c>, <c>orage</c>, and <c>mousepad</c>. Note that the last three
will not be installed if you built <c>xfce4</c> with the <c>minimal</c> USE
flag. However, these are all very small, yet terrific applications, so they're
well worth installing.
</p>

<p>
<c>orage</c> is a simple, handy calendar. <c>mousepad</c> is a barebones text
editor that starts up extremely quickly. <c>terminal</c> is far more
configurable and useful than xterm, and supports Unicode text,
pseudo-transparency and accelerated transparency via Xfce's built-in
compositor, all out-of-the-box. Just make sure that the default action on the
terminal launcher of your panel runs <path>/usr/bin/Terminal</path> instead of
xterm. Right click the launcher and choose "Properties" to change the command.
</p>

<p>
<c>thunar</c> is Xfce's built-in graphical file manager. It's fast yet quite
powerful, can support a few plugins for even more functionality; just install
them with <c>emerge</c>. Let's take a look:
</p>

<ul>
  <li>
    <c>thunar-archive</c> lets you create and extract archive files using the
    right-click menu. It works even better when paired with the new graphical
    archiving <uri
    link="http://www.foo-projects.org/~benny/projects/thunar-archive-plugin/">tool</uri>
    developed for Xfce, <c>xarchiver</c>.
  </li>
  <li>
    <c>thunar-media-tags</c> lets you intelligently rename multiple media files
    at once, and lets you <uri
    link="http://thunar.xfce.org/pwiki/projects/thunar-media-tags-plugin">edit</uri>
    their information tags, such as id3 tags.
  </li>
  <li>
    <c>thunar-thumbnailers</c> lets you <uri
    link="http://goodies.xfce.org/projects/thunar-plugins/thunar-thumbnailers">preview</uri>
    certain types of files from within Thunar, such as images and fonts.
  </li>
  <li>
    <c>thunar-volman</c> automatically <uri
    link="http://foo-projects.org/~benny/projects/thunar-volman/">manages</uri>
    removable media and drives.
  </li>
</ul>

<p>
Next, let's see about adding some useful but lightweight desktop applications,
in keeping with Xfce's philosophy.
</p>

<p>
Though <c>mousepad</c> is nice enough, if you need a full-featured word
processor but don't want the bloat of OpenOffice, try emerging <c>abiword</c>.
<uri link="http://www.abisource.com">AbiWord</uri> is lighter, faster, and is
completely interoperable with industry-standard document types.
</p>

<pre caption="Adding a word processor">
# <i>emerge -avt abiword</i>
</pre>

<p>
Need a nice email client/newsreader that isn't as demanding as
<c>mozilla-thunderbird</c> or <c>evolution</c>? Try emerging
<c>sylpheed-claws</c> or <c>claws-mail</c>.
</p>

<p>
For your internet chat needs, <c>irssi</c> is an excellent, tiny, incredibly
configurable IRC client that runs in your terminal. If you prefer a compact
all-in-one client that handles nearly all chat protocols, you may want to
<c>emerge gaim</c>.
</p>

<p>
If you need movie and music players, look no further than <c>mplayer</c> and
<c>audacious</c>. They can play most every media format available quite nicely,
and have a wealth of additional plugins available for additional functionality.
</p>

<p>
Finally, you'll need a webbrowser. Nearly all graphical webbrowsers require more
resources than most of your other desktop applications. Still,
<c>mozilla-firefox</c> (or <c>mozilla-firefox-bin</c>) is always a good choice.
Alternatively, you may find <c>opera</c> to be quite fast. However, <c>opera</c>
is not available on as many processor architectures as <c>mozilla-firefox</c>,
and it has more dependencies unless you override them with a USE flag.
</p>

<pre caption="Adding a webbrowser">
<comment>(Installing Mozilla Firefox)</comment>
# <i>emerge mozilla-firefox</i>
<comment>(Installing Opera)</comment>
# <i>echo "www-client/opera qt-static" >> /etc/portage/package.use</i>
# <i>emerge opera</i>
</pre>

<p>
Now that we've explored some good suggestions for rounding out your desktop
applications, let's see what else we can do to enhance your Xfce experience.
</p>

</body>
</section>
<section>
<title>Graphical login</title>
<body>

<p>
Remember when we added <c>startxfce4</c> to our <path>~/.xinitrc</path>? All you
have to do to get into your desktop is type <c>startx</c> after logging in. This
is fine if you prefer a completely text-based boot and login, but let's use a
display manager that will automatically start Xfce after booting (so that you
can login graphically).
</p>

<p>
First, let's make sure Xfce loads at boot:
</p>

<pre caption="Adding xdm to the default runlevel">
# <i>rc-update add xdm default</i>
</pre>

<p>
We aren't quite finished yet. We have to pick a display manager and set the
appropriate variable. Though there are a few choices available in Portage, for
this guide, we'll stick with two display manager options: <c>xdm</c> and
<c>gdm</c>.
</p>

<p>
<c>xdm</c> is speedy and lightweight, but it isn't pretty, and isn't really
customizable. If you'd like to use it, first <c>emerge</c> it:
</p>

<pre caption="Installing XDM">
# <i>emerge -avt xdm</i>
</pre>

<p>
Then edit the DISPLAYMANAGER variable in <path>/etc/conf.d/xdm</path>:
</p>

<pre caption="Editing /etc/conf.d/xdm">
DISPLAYMANAGER="xdm"
</pre>

<p>
<c>xdm</c> can automatically start your Xfce session if you add XSESSION="Xfce4"
to <path>/etc/rc.conf</path>.
</p>

<p>
While you can choose to stick with (the rather ugly) <c>xdm</c>, why not try
<c>gdm</c> instead? It's far more configurable, and much, much prettier. First,
let's <c>emerge</c> it. Note that though it has a few dependencies, they're
small, and they're not as nearly as numerous as other display managers.
</p>

<pre caption="Installing GDM">
# <i>emerge -avt gdm</i>
</pre>

<p>
Next, change the DISPLAYMANAGER variable to use <c>gdm</c> instead of
<c>xdm</c>:
</p>

<pre caption="Editing /etc/conf.d/xdm">
DISPLAYMANAGER="gdm"
</pre>

</body>
</section>
<section>
<title>Beautifying your desktop</title>
<body>

<p>
A little customization of your desktop's appearance can go a long way. Xfce has
all the options you'd expect from a modern desktop environment, font
antialiasing settings, color schemes, dozens of window decorations, themes, and
more. If these aren't enough, it's easy to install third-party themes, icon
sets, mouse cursor themes, and wallpapers.
</p>

<p>
A selection of nice Gentoo wallpapers in a variety of resolutions are hosted on
the <uri link="/main/en/graphics.xml">Gentoo website</uri>.  If you're looking
for icon sets and complete Xfce themes, <uri
link="http://www.xfce-look.org/">Xfce-Look</uri> has a huge collection. The
important thing to remember about any third-party eyecandy you download is that
it will usually first need to be unpacked and then installed to the proper
directory. Icon sets go in <path>/usr/share/icons/</path>, and themes go to
<path>/usr/share/themes/</path>; use these directories when you want all users
to be able to access themes and icon sets. Individual users can install themes
and icon sets to <path>~/.themes/</path> and <path>~/.icons/</path>.
</p>

<p>
If you installed GDM as your display manager, take a look at the many GDM themes
available on <uri link="http://www.gnome-look.org">Gnome-Look</uri>. To install
them, you can either unpack and move them to
<path>/usr/share/gdm/themes/</path> on the command line, or you can run
<c>gdmsetup</c> as <b>root</b> and drag'n'drop the archive into the GDM window.
There are some <uri
link="http://gnome-look.org/content/show.php?content=45575">very nice</uri>
Gentoo <uri
link="http://gnome-look.org/content/show.php?content=20071">themes</uri>
available.
</p>

<p>
Finally, Xfce has its own built-in compositor to manage window transparency.
This option can be found in Menu --> Settings --> Window Manager. For best
performance, you will need to be running a graphics card with drivers that
support hardware-accelerated rendering. Make sure you emerged <c>xfwm4</c> with
the <c>xcomposite</c> USE flag. Next, you will need to enable compositing in
<path>/etc/X11/xorg.conf</path> by adding the following section:
</p>

<pre caption="Enabling composite in xorg.conf">
Section "Extensions"
    Option  "Composite"  "Enable"
EndSection
</pre>

<p>
This is the bare minimum configuration required for Xfce and Xorg-X11. However,
setting up hardware-accelerated rendering depends on your individual graphics
card, and is beyond the scope of this guide. Please see the other guides in the
<uri link="/doc/en/index.xml?catid=desktop">Desktop Documentation
Resources</uri> list to learn about configuring hardware-accelerated rendering
for your graphics card.
</p>

</body>
</section>
</chapter>

<chapter id="upgrade">
<title>Upgrading</title>
<section>
<title>Upgrading from 4.2 to 4.4</title>
<body>

<p>
Upgrading from Xfce 4.2 to 4.4 isn't hard, but neither is it as simple as most
upgrades. With the release of 4.4, many older packages are either deprecated, or
their functionality has been included into the desktop in some other manner.
</p>

<p>
First, update your Portage tree (<c>emerge --sync</c>), then see what Xfce
updates are available (<c>emerge -pvtuD world</c>).
</p>

<p>
You'll notice that there will be a list of packages that block upgrading, as
most 4.2 packages cannot coexist with 4.4 packages. Here, the solution is pretty
straightforward: just unmerge the blocking packages, as described in the <uri
link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=1">Portage
Handbook</uri> and <c>man emerge</c>, then continue with the update.
</p>

<p>
Next, you may need to rebuild certain packages, such as applications linked
against <c>dbus</c>. You'll need to first install <c>gentoolkit</c> for this.
Then, once <c>gentoolkit</c> is installed, run:
</p>

<pre caption="Rebuilding packages">
# <i>revdep-rebuild -p</i>
<comment>(If you see any output about broken packages, run this next command)</comment>
# <i>revdep-rebuild</i>
</pre>

<note>
For more information, please read <c>man revdep-rebuild</c> and our <uri
link="/doc/en/gentoolkit.xml">Gentoolkit Guide</uri>.
</note>

<p>
Once the rebuild has finished, run <c>revdep-rebuild -p</c> again, just to make
sure you have a clean and consistent world. If anything still shows up, keep
repeating <c>revdep-rebuild -p</c> and <c>revdep-rebuild</c> until there's no
more output about broken packages. Most Xfce update problems stem from
<c>dbus</c> issues, as Xfce uses <c>dbus</c> quite extensively.
</p>

<p>
Next, restart <c>dbus</c> and/or <c>hal</c>.
</p>

<pre caption="Restarting dbus and hal">
# <i>/etc/init.d/dbus restart</i>
# <i>/etc/init.d/hald restart</i>
</pre>

<p>
Finally, give yourself a fresh environment.
</p>

<pre caption="Updating the environment variables">
# <i>env-update &amp;&amp; source /etc/profile</i>
</pre>

</body>
</section>
<section>
<title>Settings</title>
<body>

<p>
Make sure you familiarize yourself with all the new options available in the new
Settings Manager. Of interest are the options in the Desktop screen; Xfce can
now manage your desktop and place icons on it.
</p>

<p>
There's also a Window Manager Tweaks screen, in which you can adjust the
behavior of windows, workspaces, and transparency (if enabled). Xfce 4.4 has
slightly changed the default behavior of workspaces and active window focus. If
you find that clicking a hyperlink in one workspace switches your browser to
that workspace from another one (or similar annoying window focus behavior), try
Settings --> Window Manager Tweaks --> Focus --> Activate Focus Stealing
Prevention.
</p>

<p>
Be sure to read the <uri link="http://www.xfce.org/documentation/">Xfce
Documentation</uri> and take the <uri link="http://www.xfce.org/about/tour">Xfce
Tour</uri> to learn more about 4.4 and how to configure it.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Summary</title>
<section>
<body>

<p>
Congratulations on making it this far! You've installed and configured a speedy
desktop environment with a solid suite of applications for your computing
needs.
</p>

</body>
</section>
<section>
<title>Resources</title>
<body>

<p>
Need additional help on configuring and using Xfce? Need more lightweight
application suggestions? Try checking out:
</p>

<ul>
  <li><uri link="http://forums.gentoo.org">The Gentoo forums</uri></li>
  <li>#xfce on irc.freenode.net</li>
  <li><uri link="http://www.xfce.org">Xfce's home page</uri></li>
</ul>

</body>
</section>
</chapter>
</guide>
