Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
general_info_46 [2008/09/12 23:52] – add some text for xfdesktop kelnosreleng:4.6:general-info [2010/10/02 17:26] (current) – external edit 127.0.0.1
Line 8: Line 8:
  
 ==== xfconf ==== ==== xfconf ====
-Xfconf is the new configuration system for xfce 4.6, it replaces the 'old' mcs-manager that came with previous versions of xfce.+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 ===
-Xfconfd is the daemon handling the storage of settings. Just like mcs, settings are stored in 'channels'.+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 ===
-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 finger-tips. You can change any setting stored in xfconf with 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: The following example allows you to set the wallpaper on your first monitor:
Line 22: Line 28:
   xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 0   xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 0
  
-=== xfsettingsd === +Not only can command-line-inclined people modify their desktop settings that way if they so desirebut now it's easy to change settings from automated scripts.
-Xfsettingsd is an independent XSETTINGS daemon, it uses xfconf to read its settings from the 'xsettings' channel and then exposes these settings using the XSETTINGS protocol.+
  
 === libxfconf === === libxfconf ===
-Libxfconf is a client-library which can be used by applications if they want to store their settings with xfconfd.  Libxfconf also contains a set of functions to bind GObject properties to Xfconf properties, making connecting UI elements to properties trivial.+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 ====
Line 49: Line 55:
   * AccessX notification using libnotify (mention when Sticky-keys and the likes are toggled)   * AccessX notification using libnotify (mention when Sticky-keys and the likes are toggled)
   * Update kb and mouse-pointer data.   * 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 === === xfce4-settings-editor ===
Line 57: Line 66:
 ==== xfdesktop ==== ==== xfdesktop ====
  
-Xfce's desktop manager, xfdesktop, is the program that draws the desktop background, desktop icons, and presents the right-click root menu and middle-click window list menu.+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. 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.
Line 73: Line 83:
   * Support for different sound systems at the same time (ALSA, OSS, PulseAudio etc.)   * Support for different sound systems at the same time (ALSA, OSS, PulseAudio etc.)
   * Support for multiple sound cards   * Support for multiple sound cards
-  * Provides a new mixer plugin+  * Provides a new mixer plugin ;-)
  
 ==== xfwm4 ==== ==== xfwm4 ====
 +
 ==== xfce4-session ==== ==== xfce4-session ====
 ==== xfce-utils ==== ==== xfce-utils ====
Line 86: Line 97:
  
 ===== Xfce 4.6 ALPHA ===== ===== Xfce 4.6 ALPHA =====
-==== Build-order ====+==== Build Order ====
   - xfce4-dev-tools   - xfce4-dev-tools
   - libxfce4util   - libxfce4util
-  - libxfcegui4, libxfce4menu, libexo 
   - xfconf   - xfconf
 +  - libxfcegui4, libxfce4menu, libexo
   - xfce4-panel   - xfce4-panel
   - thunar   - thunar
-  - xfce4-settings, xfce4-session, xfdesktop, xfwm4, xfce-utils, xfce4-mixer, xfprint+  - 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+ ||