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 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 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 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 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 is the front-end replacement for the mcs-manager, it comes with several different components for configuring application-independent settings inside xfconf.
New settings-dialogs have been written for the configuration of Xfce.
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.
The xfce4-settings-helper is a daemon which provides special features:
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.
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.
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.
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:
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.
NB: xfce4-dev-tools is only required when building from SVN sources.
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+ |