Xfce Wiki

Sub domains
 

Xfce 4.6 General Info

Components

libxfce4menu

libxfce4menu is an implementation of the freedesktop.org menu standard. It is not complete yet but already covers the most important features (except for Merging which is a requirement for proper menu editing). Starting with Xfce 4.6 it is used by xfdesktop and xfce4-appfinder for menus and lists of installed applications.

xfconf

Xfconf is the new configuration system for Xfce 4.6, replacing the old MCS system that had been present since 4.0.0.

Xfconf is intended to be more general-purpose than MCS ever was, and not even require a GUI for management of settings. Some may consider Xfconf's architecture to be similar to that of gconf, and they wouldn't be completely wrong. However, Xfconf is designed to be much simpler and easier to work with, while still being much more flexible than MCS and providing core Xfce applications and 3rd-party applications an easy-to-use configuration system.

Xfconf borrows some terminology from MCS: groups of settings are stored in “channels” that usually correspond to an application. So if I had an application called “Foobar”, I'd store my settings in a channel called “foobar” (or “Foobar”, if I wanted). The actual settings are stored as pairs of “properties” and “values”. Properties are hierarchical, so groups of similar settings can be logically kept together.

As you might guess, Xfconf consists of a few different components that all work together. It uses D-Bus for communication between these components.

xfconfd

Xfconfd is a small daemon that handles storage and retrieval of settings, as well as notifying interested applications about changes to settings. It doesn't require a GUI, so it could even be used for command-line applications.

xfconf-query

Xfconf-query might be one of the tools many users have been waiting on for years, especially those hanging around in our IRC channel. Instead of having to guide new users through several dialogs and windows, it is now possible to have every control over your Xfce desktop at your fingertips. You can view or change any setting stored in xfconf with xfconf-query.

The following example allows you to set the wallpaper on your first monitor:

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s ~/path-to-wallpaper
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-show -s true
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 0

Not only can command-line-inclined people modify their desktop settings that way if they so desire, but now it's easy to change settings from automated scripts.

libxfconf

Libxfconf is a client library which can be used by applications if they want to store their settings with xfconfd. It contains some generic property set/get functionality, along with convenience functions for getting/setting common types (strings, ints, doubles, etc.). An interesting ability of libxfconf is to easily set and retrieve values that are actually arrays of values. Libxfconf also includes a set of functions to bind GObject properties to Xfconf properties, making connecting UI elements to properties trivial.

xfce4-settings

xfce4-settings is the front-end replacement for the mcs-manager, it comes with several different components for configuring application-independent settings inside xfconf.

Settings dialogs

New settings-dialogs have been written for the configuration of Xfce.

xfce4-mouse-settings
xfce4-keyboard-settings
xfce4-appearance-settings
xfce4-accessibility-settings
xfce4-display-settings

xfce4-settings-manager

The xfce4-settings-manager is the replacement for the 'old' mcs-manager settings-dialog.

It enables users to execute the various settings-dialogs within xfce.

xfce4-settings-helper

The xfce4-settings-helper is a daemon which provides special features:

  • keyboard-shortcuts for executing commands
  • AccessX notification using libnotify (mention when Sticky-keys and the likes are toggled)
  • Update kb and mouse-pointer data.

xfsettingsd

Xfsettingsd is an independent XSETTINGS daemon that uses xfconf for its settings storage. It keeps all shared desktop-related settings in the 'xsettings' channel and then exposes these settings using the XSETTINGS protocol.

xfce4-settings-editor

The xfce4-settings-editor is a tool for editing ALL settings within xfconf. It is the graphical counterpart of xfconf-query.

Both xfconf-query and the xfce4-settings-editor can be used to perform maintenance on the xfconf property database.

xfdesktop

Xfce's desktop manager, xfdesktop, is the program that draws the desktop background, desktop icons, and previous presents the right-click root menu and middle-click window list menu. The news in Xfce 4.6 is that “Desktop setting → Icons → Appearance → Icon type” setting causes the root menu disappear if something else than “File/launcher icons” is selected. You are still able to have the root menu as an instance in the desktop settings menu, which presents then your right-click in Xfce 4.6. This is set at “Desktop setting → Icons → Appearance → Menu”. Read more http://foo-projects.org/pipermail/xfce4-dev/2009-January/025873.html

Xfdesktop hasn't changed all that much since 4.4 from the user's perspective, though many bugs have been fixed and small new features have been added. The preferences dialog has been redesigned and is hopefully easier to use now. The old menu system has been replaced with a newer, faster menu system (based on libxfce4menu), and the settings storage has been migrated from the old MCS settings system to the new Xfconf system.

In addition, experimental support for display hotplugging has been added (requires gtk+ 2.14, and a recent X.org version and video drivers that support it), so when you plug in an extra monitor, xfdesktop will automatically notice and start managing the desktop on that monitor too. Of course, it will also notice when you unplug a monitor and stop managing the desktop on that one.

A few new preferences have been added to allow you to further customize your desktop. A color saturation adjustment slider has been added for the backdrop image, and a new scaling style – “zoomed” – has been added that allows you to fill your entire screen with an image that has an aspect ratio different from that of your display. You can now set a “transparent” background color, which (if you also disable the backdrop image) will allow you to “see” whatever is below the desktop. This is probably only useful for some specialized setups, but can be fun to play with. The “show icons in menu” prefs for both the root menu and window list have been brought back, and a few “hidden options” from the xfdesktoprc file have been exposed in the settings GUI.

xfce4-panel

xfce4-mixer

The package xfce4-mixer is a full-featured volume control application. It is also a replacement for the buggy old mixer written from scratch. It is based on GStreamer 0.10 (gstreamer-0.10 and gstreamer-plugins-base-0.10 and, on most machines, gstreamer0.10-alsa) which makes it run on a variety of platforms out of the box. Features include:

  • Support for different sound systems at the same time (ALSA, OSS, PulseAudio etc.)
  • Support for multiple sound cards
  • Provides a new mixer plugin ;-)

xfwm4

xfce4-session

xfce-utils

xfprint

thunar

thunar-volman

xfce4-appfinder

The appfinder is a program that gives an overview over the installed programs and allows to start them. It can also be used to drag applications into the properties dialog of panel starters which makes creating complex starters a breeze. The appfinder has been rewritten from scratch based on libxfce4menu.

Xfce 4.6 ALPHA

Build Order

  1. xfce4-dev-tools
  2. libxfce4util
  3. xfconf
  4. libxfcegui4, libxfce4menu, libexo
  5. xfce4-panel
  6. thunar
  7. xfce4-settings, xfce4-session, xfdesktop, xfwm4, xfce-utils, xfce4-mixer, xfprint, xfce4-appfinder

NB: xfce4-dev-tools is only required when building from SVN sources.

Dependencies

Package Depends On
xfce4-dev-tools autoconf, automake, intltool, pkgconfig
libxfce4util glib, gobject
libxfcegui4 libxfce4util, gtk+, libglade, libstartup-notification (optional), libgladeui (optional), xfconf (optional)
libxfce4menu libxfce4util, gtk+
libexo libxfce4util, gtk+, p5-uri
xfconf libxfce4util, dbus, dbus-glib, gtk+
xfce4-session libxfce4util, libxfcegui4, p5-xml-parser, libwnck, dbus (optional)
xfwm4 libxfce4util, libxfcegui4, libxfconf, dbus-glib, libwnck, libstartup-notification (optional)
xfce4-panel libxfce4util, libxfcegui4, libexo, cairo, libwnck, libstartup-notification (optional)
thunar libxfce4util, libexo, libexif (optional), libpng, gtk+, dbus (optional), gconf (optional), libstartup-notification (optional), freetype (optional), libjpeg (optional), gamin/fam (optional), hal-storage (optional), libxfce4panel (optional), xfconf (optional)
xfdesktop libxfce4util, libxfcegui4, libxfconf, libwnck, libglade, dbus-glib (optional), thunar-vfs (optional), libexo (optional), thunarx (optional), libxfce4menu (optional), libxfce4panel (optional)
xfce-utils libxfce4util, libxfcegui4, perl w/XML::Parser (semi-optional), dbus (optional)
xfce4-settings libxfce4util, libxfcegui4, libexo, xfconf, libglade, dbus-glib, libXi, libXrandr, libXcursor (optional), libnotify (optional)
xfce4-mixer libxfce4util, libxfcegui4, libxfce4panel, gst-plugins-base-0.10
xfprint libxfce4util, libxfcegui4, xfconf, cups (optional), lpr (optional)
xfce4-appfinder libxfce4util, libxfce4menu, gtk+