Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.

Xfce is a Desktop Environment, like GNOME or KDE. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit, and contains its own development environment (libraries, daemons, etc), similar to other big DEs. Features:

Lighter on resources than the other major DEs (KDE, GNOME).

Most settings are exposed via a GUI, Xfce does not try to hide stuff from the user.

Xfwm has an optional built-in compositor which allows for true transparency and all the benefits of GPU acceleration (minimizes tearing, etc.).

Installation

Before starting, make sure you have the X server installed and configured correctly.

Note: Xfce is somewhat modular. That means there is no need for you to run every part, you can pick and choose some of them.

The base Xfce system can be installed with the group xfce4, available in the Official Repositories. Pacman will ask you to select the packages to install, but you probably want to get them all by simply pressing Template:Keypress. Additional packages, like panel plugins, notifications, and system tools are available in the xfce4-goodies group.

Automounting

If you have no problems shutting down and rebooting but cannot automount external media and disks, you may need to install gvfs. See the Removable Devices section.

Tips and tricks

Xfconf settings

Xfconf is XFCE's system for storing configuration options, and most XFCE configuration is done by editing settings in Xfconf (one way or another). There are several ways to modify these settings:

The most obvious and easiest way is to go to "Settings" in the main menu and select the category you want to customize. However, not all customization options are available this way.

A less user-friendly but more general way is to go to

Main menu -> Settings -> Settings Editor

where you can see and modify all the customization options. Any settings modified here will take effect immediately. The Settings Editor can also be launched from the command line by invoking xfce4-settings-editor.

Customization can be done completely from the command line using the program xfconf-query. See the XFCE online documentation for more information and examples and the rest of this wiki page for more examples. Settings changed here will take effect immediately.

The settings are stored in XML files in ~/.config/xfce4/xfconf/xfce-perchannel-xml/ which can be edited by hand. However, changes made here will not take effect immediately.

'menu' panel replacement

The "Ubuntu System Panel" (GNOME) panel applet has similar features to those found in its KDE v4.2 equivalent. It can be added to an Xfce panel via the 'XfApplet' panel applet, which allows GNOME applets to be used in Xfce.

Removing entries from the System menu

Method 1

With the built-in menu editor, you cannot remove menu entries from the System menu. Here’s how to hide them:

Open Terminal (Xfce menu > System > Terminal) and go to the /usr/share/applications folder:

$ cd /usr/share/applications

This folder should be full of .desktop files. To see a list type:

$ ls

Add NoDisplay=true to the .desktop file. For example, if you want to hide Firefox, type in the terminal:

# echo "NoDisplay=true" >> firefox.desktop

This command appends the text NoDisplay=true to the end of the .desktop file.

Method 2

Another method is to copy the entire contents of the global applications directory over to your local applications directory, and then proceed to modify and/or disable unwanted .desktop entries. This will survive application updates that overwrite changes under /usr/share/applications/.

In a terminal, copy everything from /usr/share/applications to ~/.local/share/applications/:

$ cp /usr/share/applications/* ~/.local/share/applications/

For any entry you wish to hide from the menu, add the NoDisplay=true option:

$ echo "NoDisplay=true" >> ~/.local/share/applications/foo.desktop

You can also edit the application's category by editing the .desktop file with a text editor and modifying the Categories= line.

The <MergeFile> tag includes the default Xfce menu in our file. This is important.

The <Exclude> tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude firefox.desktop or any other application.

The <Layout> tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the aforementioned Xfce wiki page.

Method 4

Alternatively a tool called xame can be used. XAME is a GUI tool written in Gambas designed specifically for editing menu entires in XFCE, it will NOT work in other DEs. XAME is available in the xameAUR package from the AUR.

Missing applications

When some applications are installed (for example via WINE), they may not be listed in /usr/share/applications. Shortcuts might be found in the category “Other” in this directory:
~/.local/share/applications/wine/.

Panel autohide delay

Add this to ~/.gtkrc-2.0.

style "xfce-panel-window-style"
{
# Time in miliseconds before the panel will unhide on an enter event
XfcePanelWindow::popup-delay = 225
# Time in miliseconds before the panel will hide on a leave event
XfcePanelWindow::popdown-delay = 350
}
class "XfcePanelWindow" style "xfce-panel-window-style"

Panel at desktop level

If you want a panel at desktop level (i.e., other windows will stack over it) you need a little hack, ensure you have installed the wmctrl package from the Official Repositories.

Create a script in ~/.config/xfce4/xfce4-fix-panel with this content and make it executable (you can use chmod 755 xfce4-fix-panel).

Once wrote the script, and tested it, you need to auto-execute it at each login. You can use the Session and StartUp -> Application Autostart gui.

This passage will put your panels at desktop level, but if your panel is sticking to a border the maximized windows will not stack over it. You can enable this behavior with the following command, fortunately you need to do this only once. (change the $ID with the panel number of interest)

Would show all partitions with the exception of sda1 and sda2 on your desktop. Notice, if you are using udisk2 the above will not work, due to the UDISKS_PRESENTATION_HIDE no longer being supported, instead you must use UDISKS_IGNORE as follows

XFWM4

Enabling the Compositor

Xfce comes with a builtin compositor adding the option for fancy window effects, shadows and transparency and so on. It can be enabled in the Window Manager Tweaks and works on the fly. No additional settings are needed in your /etc/xorg.conf. To enable and adjust settings, go to:

Menu --> Settings --> Window Manager Tweaks

Disable window roll-up

xfconf-query -c xfwm4 -p /general/mousewheel_rollup -s false

Toggle Automatic Tiling of Windows at Edge of Screen

XFWM4 has the ability to "tile" a window automatically when it is moved to the edge of the screen by resizing it to fill the top half of the screen. (The official XFCE website says this feature is disabled by default in XFCE 4.10, but it seems to be enabled by default on Arch Linux.) This behavior can be enabled or disabled in Window Manager Tweaks --> Accessibility --> Automatically tile windows when moving toward the screen edge, or:

Settings Manager Commands

There is no official documentation for the commands executed. One must look at .desktop files /usr/share/applications/ folder. For the people who like to know exactly what is happening, here is a handy list to save the effort:

Session

Custom Startup Applications

Via the Settings Menu

To launch custom applications when Xfce starts up, click the Applications Menu -> Settings -> Settings Manager and then choose the "Session and Startup" option and click the tab "Application Autostart".
You'll see a list of programs that get launched on startup. To add an entry, click the "Add" button and fill out the form, specifying the path to an executable you want to run.

Startup Script

Alternatively you can use this method, to run a command line script to launch your applications. This includes getting necessary environment variables into the GUI runtime.

Copy the file /etc/xdg/xfce4/xinitrc to ~/.config/xfce4/

Edit this file. For example, you can add something like this somehwere in the middle:

Lock the screen

Switch between users

Xfce4 allows this behavior under the 'action buttons' menu item. Currently, both gdm and lightdm provide this functionality.

Manually Modifying XML settings

It may be useful, especially when upgrading, to manually edit .xml files in the ~/.config/xfce4/xfconf/ folder. For application keyboard shortcuts for example, the file is ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml. It is faster to copy and paste the XML keys that you want rather than using the GUI.

Removable Devices

If you want an icon appearing on your desktop and in Thunar when you plug in external devices, make sure gvfs is installed. You could also need to install gvfs-afc (read this discussion). It is also a good idea to install thunar-volman (already included in the xfce4 base group). Additionally, udisks and a udisks wrapper are recommended if you want to automount optical and external drives easily.

Look and Feel

Add themes to XFCE

1. Go to www.xfce-look.org and click "Themes" in the left navbar. Look around for a theme you want and click "Download".

2. Go to the directory where you downloaded the tarball/file and extract it using Squeeze/Xarchiver/CLI.

3. Move the extracted folder to /usr/share/themes (for all users) or ~/.themes (for just you). Inside /usr/share/themes/abc, there is a folder that you create called xfwm4 that will contain whatever files that is included with that theme.

Icons

Go to the directory where you downloaded the icon pack and extract it. Example tar -xzf /home/user/downloads/icon-pack.tar.gz.

Move the extracted folder containing the icons to ~/.icons (if only you want to use the icons) or to /usr/share/icons (if you want all users on the system to make use of the icons), and in the lattter case consider creating a PKGBUILD for that.

When you have icon theme problems, it is also recommended to install the hicolor-icon-theme package if it was not already installed.

Fonts

If you find the standard fonts rather thick and or slightly out of focus open Settings>Appearence click on the Fonts tab and under Hinting: change to Full

You could also try using a custom DPI setting.

Sound

Configuring xfce4-mixer

xfce4-mixer is the GUI mixer app / panel plugin made by the Xfce team. It is part of the xfce4 group, so you probably already have it installed. Xfce 4.6 uses gstreamer as the backend to control volume, so first you have to make gstreamer cooperate with xfce4-mixer. One or more of the gstreamer plugin packages listed as optional dependencies to xfce4-mixer must be installed. Without one of these required plugins packages, the following error arises when clicking on the mixer panel item.

GStreamer was unable to detect any sound devices. Some sound system specific GStreamer packages may be missing. It may also be a permissions problem.

If the xfce4-mixer panel item was already running before one of the plugins packages was installed, logout and login to see if it worked, or just remove the mixer plugin from the panel and add it again. If that does not work, you might need more or different gstreamer plugins. Try to install package gstreamer0.10-good-plugins or gstreamer0.10-bad-plugins.

Xfce4-mixer and OSS4

If you tried the above section to get xfce4-mixer to work and it does not work at all, then you may have to compile gstreamer0.10-good-plugins yourself. Download the PKGBUILD and other files needed from ABS or here, edit the PKGBUILD, add --enable-oss.

If amixer set Master toggle does not work, try the PCM channel (amixer set PCM toggle) instead.

The channel must have a "mute" option for the toggle command to work. To check whether or not your Master channel supports toggling mute, run alsamixer in a terminal and look for the double M's (MM) under the Master channel. If they are not present, then it does not support the mute option. If, for example, you had to change the toggle button to use the PCM channel, make sure to also set the PCM channel as the Mixer Track under Xfce Mixer properties.

These settings assume the device you want to control has index 0.
Use pactl list sinks short to list sinks.

Xfce4-volumed

xfce4-volumed daemon from the AUR automatically maps volume keys of your keyboard to Xfce-mixer. Additionally you get OSD through Xfce4-notifyd when changing volume. Xfce4-volumed does not need any configuration and is started automatically with Xfce.

The factual accuracy of this article or section is disputed.

Reason: There should be a short explanation of what this does and why it fixes the problem (bug?). (Discuss in Talk:Xfce#)

If you use pulseaudio and xfce4-volumed unmute does not work, try this:

Volumeicon

volumeicon is an alternative to xfce4-volumed in the community repo also handling keybindings and notifications through xfce4-notifyd.

Adding startup/boot sound

Arch does not have a built-in startup sound configuration tool, but there is a workaround by adding the following command to your Application Autostart settings:

aplay /boot/startupsound.wav

The file location and filename can be whatever you want, but naming it descriptively and putting it in /boot keeps things tidy.

xdg-open integration (Preferred Applications)

Most applications rely on xdg-open for opening a preferred application for a given file or URL.

In order for xdg-open and xdg-settings to detect and integrate with the XFCE desktop environment correctly, you need to install the xorg-xprop package.

If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.
Installing the package and allowing xdg-open to detect that you are running XFCE makes it forward all calls to exo-open instead, which correctly uses all your preferred applications preferences.

To make sure xdg-open integration is working correctly, ask xdg-settings for the default web browser and see what the result is:

# xdg-settings get default-web-browser

If it replies with:

xdg-settings: unknown desktop environment

it means that it has failed to detect XFCE as your desktop environment, which is likely due to a missing xorg-xprop package.

Screenshots

Print Screen key

Add the "xfce4-screenshooter -f" command to use the "PrintScreen" key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.

Alternatively, an independent screenshot program like scrot can be used.

Terminal color themes or pallets

Terminal color themes or pallets can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like Emacs, Vi and so on. Their settings are stored individually for each system user in ~/.config/xfce4/terminal/terminalrc file. There are also so many other themes to choose from. Check forums post [Colour Scheme Screenshots] for hundreds of available choices and themes.

Colour management

xfce4-settings-manager does not yet have any colour management / calibration settings, nor is there any specific XFCE program to characterise your monitor.

Loading a profile

If you wish to load an icc profile (that you have previously created or downloaded) to calibrate your display on startup, you can download xcalibAUR from AUR, then open the XFCE4 Settings Manager, click Session and Startup icon, the Autostart tab, and add a new entry where the command is /usr/bin/xcalib /path/to/your/profile.icc. You still need to tell your applications, which display profile should be used to have the displayed images colour managed.

Another option is dispwin. Dispwin not only calibrates the display, but also sets the _ICC_PROFILE atom in X so that some applications can use a "system" display profile instead of requiring the user to set the display profile manually (GIMP, Inkscape, darktable, UFRaw, etc.).

Creating a profile

If you wish to create an icc profile for your display (ie. characterising/profiling, e.g. with the ColorHug, or some other colorimeter, or a spectrophotometer, or "by eye"), the simplest option may be to install dispcalGUIAUR from AUR.

Another option is to install gnome-settings-daemon and gnome-color-manager (available in extra). In order to start the calibration from the command line, first do /usr/lib/gnome-settings-daemon/gnome-settings-daemon & (note: this might change your keyboard layout and who knows what else, so probably good to do it on a throwaway account), then colormgr get-devices and look for the "Device ID" line of your monitor. If this is e.g. "xrandr-Lenovo Group Limited", you start calibration with the command gcm-calibrate --device "xrandr-Lenovo Group Limited".

Multiple Monitors

If you have configured X.org so that your display spans multiple monitors, usually when you login to an XFCE session, it will appear as if your monitors are simple clones of one another. You can use an xrandr tool to tweak your setup but if this is not called at an appropriate time in the startup sequence, some functionality may be lost with parts of your display being inaccessible to the mouse pointer.

A better way is to configure XFCE to match your desired display arrangement. However, at present (xfce-settings 4.10), there is no tool available to assist with configuring multiple monitors directly.

The Settings -> Display tool does allow configuration of screen resolution, rotation and enabling individual monitors; warning: using this tool to adjust display settings will reset or lose settings made manually for properties not explicitly offered as buttons in the tool (see below).

The Settings -> Settings Editor allows manipulation of all configuration items in particular the displays settings which are saved in the file displays.xml below

~/.config/xfce4/xfconf/xfce-perchannel-xml

Alternatively, the displays.xml can be edited using your favourite editor.

The main requirement for multiple monitors is their arrangement relative to one another. This can be controlled by setting the Position properties (X and Y) to suit; an (x,y) position of 0,0 corresponds to the top, left position of the monitor array. This is the default position for all monitors and if several monitors are enabled they will appear as a cloned display area extending from this point.

To extend the display area correctly across both monitors:

for side-by-side monitors, set the X property of the rightmost monitor to equal the width of the left-most monitor

for above-and-below monitors, set the Y property of the bottom monitor to equal the height of the upper monitor

for other arrangements, set the X and Y properties of each monitor to correspond to your layout

Measurements are in pixels. As an example, a pair of monitors with nominal dimensions of 1920x1080 which are rotated by 90 and placed side-by-side can be configured with a displays.xml like this:

This also solves the problem when the computer registers multiple suspend events.

xfce4-xkb-plugin

There is a bug in version xkb-plugin0.5.4.1-1 which causes xkb-plugin to lose keyboard, layout switching and compose key settings. As a workaround you may enable Use system defaults option in keyboard settings. To do so run

xfce4-keyboard-settings

Go to Layout tab and set the Use system defaults flag, then reconfigure xkb-plugin.

Preferred Applications preferences have no effect

Action Buttons/Missing Icons

This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or at least do not have the expected names. First, find out the currently used icon theme in the Settings Manager (→Appearance→Icons). Match this with a subdirectory of /usr/share/icons. For example, if the icon theme is GNOME, make a note of the directory name /usr/share/icons/gnome.

icontheme=/usr/share/icons/gnome

Make sure that the xfce4-power-manager is installed as this contains the needed icons. Now create symbolic links from the current icon theme into the hicolor icon theme.

Enable cedilla ç/Ç instead of ć/Ć

When you select the keyboard layout "U.S., alternative international" in Settings --> Keyboard --> Layout to enable accents, the typical combination for the cedilla ' + c results in ć instead of ç.To change this suffice edit files gtk.immodules for gtk-2.0 and immodules.cache for gtk-3.0 in line that contains "cedilla" adding both "en" in the list "az:ca:co:fr:gv:oc:pt:sq:tr:wa" but in alphabetical order, staying that way in /etc/gtk-2.0/gtk.immodules

Non ASCII characters when mounting USB sticks

A common problem when automounting USB sticks formatted with fat filesystem is the inability to properly show characters as umlauts, ñ, ß, etc. This may be solved by changing the default iocharset to UTF-8, which is easily done adding a line to /etc/xdg/xfce4/mount.rc:

Note that when using utf-8, the system will distinct between upper- and lowercases, potentially corrupting your files, so be careful.

It is possible to mount vfat devices with flush option, so that when copying to USB sticks data flushes more often, thus making thunar's progress bar to stays up until finished. Adding async instead will speed up write ops, but make sure to use Eject option in Thunar to unmount the stick. Globally, mount options for storage devices present at boot can be set in fstab, and for other devices in udev rules.