The Xfce Configuration Guide
The Xfce desktop environment
Xfce 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 Freedesktop specifications.
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.
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.
The last part of this guide lists a few commands to run after upgrading to a
new Xfce release, so be sure to follow them if you are upgrading from an older version.
First, make sure you've configured Xorg as shown in the X Server Configuration Howto.
Next, double-check your USE flags in /etc/portage/make.conf; you'll
probably at least want USE="-gnome -kde -minimal -qt4 dbus jpeg lock session
startup-notification thunar udev X".
Now that you've set your USE variables in
/etc/portage/make.conf, it's time to install Xfce.
Code Listing 2.1: Installing Xfce
# emerge -avt xfce4-meta
Next, add your regular user(s) to the cdrom, cdrw,
and usb groups, so that they can mount and use devices such as cameras,
optical drives, and USB sticks.
Code Listing 2.2: Adding users to the hardware groups
# for x in cdrom cdrw usb ; do gpasswd -a username $x ; done
Next, update your environment variables:
Code Listing 2.3: Updating environment variables
# env-update && source /etc/profile
You'll also need a graphical terminal so that you can continue working with your
new desktop environment. x11-terms/xfce4-terminal is a good choice, as it's
made specifically for Xfce. Install Terminal as shown:
Code Listing 2.4: Installing Terminal
# emerge x11-terms/xfce4-terminal
Now that Xfce is now installed, we'll configure it to be the default desktop
environment when we issue the startx command. Exit your root shell and
log on as a regular user.
Code Listing 3.1: Setting Xfce as the default desktop environment
$ echo "exec startxfce4" > ~/.xinitrc
If you have ConsoleKit installed, your ~/.xinitrc should instead
contain exec startxfce4 --with-ck-launch. Otherwise, some of your
applications may stop working. You'll also need to add consolekit to the
default runlevel by running the following command as root: rc-update add
Now start your graphical environment by typing startx:
Code Listing 3.2: Starting Xfce
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.
Sessions & startup
If you've installed (or plan to install) popular Gnome or KDE applications such
as k3b, nautilus, kmail, evolution, etc. then you
should make sure that Xfce launches the appropriate services for these at
startup. Navigate to Menu --> Settings --> Sessions & 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.
Xfce has the ability to save your session settings and running programs from the
"General" tab in the Sessions & 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.
You've now got a basic working environment installed and configured. But if
you're interested in doing more, then continue reading!
In this chapter, we'll discuss some useful plugins and applications for everyday
use within Xfce.
There are many plugins for the panel available in Portage; see for yourself with
emerge --search xfce. Though for the most part their names are
self-explanatory, a few deserve extra attention, as they are quite helpful. To
use them, simply emerge them. They'll be added to the list of available
items in the "Add New Items" menu shown when you right-click on the panel.
xfce4-battery-plugin 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.
xfce4-verve-plugin is a small command line embedded into the panel.
It's quicker than opening up another terminal when you want to run a
xfce4-mount-plugin gives you a handy method of mounting devices
listed in /etc/fstab just by clicking your mouse
xfce4-sensors-plugin lets you monitor your hardware sensors, such as
CPU temperature, fan RPM, hard drive temp, motherboard voltage, and more
We should now emerge some useful applications and utilities:
xfce4-mixer, xfce4-taskmanager, xfwm4-themes, orage,
mousepad, xfce4-power-manager, x11-terms/xfce4-terminal, and
xfce4-mixer is a volume control for your sound card. It can also be run
as a panel applet, giving you fast access to playback volume.
xfce4-taskmanager displays a list of all running programs, and the CPU
and memory consumption each one takes up. By right-clicking an item, you can
kill a misbehaving application, pause and restart it, or even alter its runtime
priority, which lets you fine-tune how much of a demand it puts on your system's
xfwm4-themes adds several window manager themes. You may want to add a
more full-coverage icon theme such as tango-icon-theme just to round out
orage is a simple, handy calendar. mousepad is a barebones text
editor that starts up extremely quickly.
xfce4-power-manager is an application to monitor and manage power usage.
This is especially important for laptops! The power manager allows you to adjust
screen brightness, choose maximum performance or battery-saving modes, and setup
hibernate, suspend, and shutdown actions when the lid is shut or buttons are
pressed. You can set xfce4-power-manager
to warn you when your battery reaches certain levels, or even turn off your
machine. The application comes with a couple of helpful panel plugins to display
battery/charging status, and a brightness control.
x11-terms/xfce4-terminal is an X11 terminal emulator, far more configurable and
useful than the barebones xterm. xfce4-terminal supports Unicode text,
color schemes, pseudo-transparency and hardware-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
/usr/bin/Terminal instead of xterm. Right-click the
launcher and choose "Properties" to change the command.
thunar is Xfce's default graphical file manager. It's fast yet quite
powerful, can support several plugins for even more functionality; just install
them with emerge. Let's take a look:
thunar-archive-plugin lets you create and extract archive files using
the right-click menu. It provides a handy front-end
for graphical archiving applications such as xarchiver and
tumbler lets you preview certain types of files from within Thunar,
such as images and fonts.
thunar-volman automatically manages
removable media and drives.
Next, let's see about adding some useful but lightweight desktop applications,
in keeping with Xfce's philosophy.
Though mousepad is nice enough as a basic text editor, if you need a
full-featured word processor but don't want the bloat of LibreOffice, try
emerging abiword. AbiWord is
lighter, faster, and is completely interoperable with industry-standard document
Need a nice email client/newsreader that isn't as demanding as
thunderbird or evolution? Try emerging claws-mail.
For your internet chat needs, irssi 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
If you need movie and music players, look no further than mplayer and
can play most every media format available quite nicely.
Finally, you'll need a webbrowser. Nearly all graphical webbrowsers require more
resources than most of your other desktop applications. Still, firefox
and midori are always good choices. Alternatively, you may find
opera to be quite fast. However, opera is not available on as many
processor architectures as firefox, and it has more dependencies unless
you override them with a few USE flags.
Code Listing 4.1: Adding a webbrowser
# emerge firefox
# emerge midori
# echo "www-client/opera gtk -kde" >> /etc/portage/package.use
# emerge opera
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.
Remember when we added startxfce4 to our ~/.xinitrc? All you
have to do to get into your desktop is type startx 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).
First, let's make sure Xfce loads at boot:
Code Listing 4.2: Adding xdm to the default runlevel
# rc-update add xdm default
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 SLiM, the
Simple Login Manager.
slim is speedy and lightweight, with minimal dependencies. Perfect for
Code Listing 4.3: Installing SLiM
# emerge -avt slim
The branding USE flag will pull in the slim-themes package, which
will give you an assortment of login themes, including a Gentoo Linux theme.
Then edit the DISPLAYMANAGER variable in /etc/conf.d/xdm:
Code Listing 4.4: Editing /etc/conf.d/xdm
SLiM can automatically start your Xfce session if you add
XSESSION="Xfce4" to /etc/env.d/90xsession:
Code Listing 4.5: Setting XSESSION
# echo XSESSION=\"Xfce4\" > /etc/env.d/90xsession
# env-update && source /etc/profile
Beautifying your desktop
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.
A selection of nice Gentoo wallpapers in a variety of resolutions are hosted on
the Gentoo website. If you're looking
for icon sets and complete Xfce themes, Xfce-Look 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 /usr/share/icons/, and themes go to
/usr/share/themes/; 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 ~/.themes/ and ~/.icons/.
If you installed SLiM as your display manager, there are lots of themes in the
slim-themes package available in Portage. Also, be sure to check the SLiM
themes page for more
themes. Creating your own SLiM theme is fairly easy; just read the Themes HowTo. Gentoo also
ships a slim-themes package that you can emerge.
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 xfwm4 with
the xcomposite USE flag. Next, you will need to enable compositing in
/etc/X11/xorg.conf by adding the following section:
Code Listing 4.6: Enabling composite in xorg.conf
Option "Composite" "Enable"
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
Resources list to learn about configuring hardware-accelerated rendering
for your graphics card.
Once you've finished setting up a beautiful Xfce desktop, the next thing to do
is take a picture of it to share with other folks! Just install
xfce4-screenshooter and post your pictures somewhere for all to admire.
Congratulations on making it this far! You've installed and configured a speedy
desktop environment with a solid suite of applications for your computing
If you're upgrading Xfce from earlier major versions (4.x), then you will
need to remove your old cached sessions and profiles as they are incompatible
with new releases. For each of your users, run the following commands to remove
your old incompatible cached sessions and profile:
Code Listing 5.1: Deleting old sessions from the cache
$ rm -r ~/.cache/sessions
$ rm -r ~/.config/xfce*
$ rm -r ~/.config/Thunar
Users will be greeted with a new and shiny interface, but will lose many of
their individual settings. Sadly, no migration of configuration(s) exist that we
Need additional help on configuring and using Xfce? Need more lightweight
application suggestions? Try checking out:
- The Gentoo forums
- #xfce on irc.freenode.net
The installed help files and other documentation provided by Xfce:
/usr/share/xfce4/doc/C/index.html. Just point your browser at
it and start reading. There are even a lot of "hidden" configuration options
detailed in the help files.
- Xfce's home page
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-2.5 license. The Gentoo Name and Logo Usage Guidelines apply.