Xfce Wiki

Sub domains

Xfce API Documentation

Main Xfce API Documentation Page

The Xfce library documentation may often be installed by distributions in /usr/share/gtk-doc/html/.

Core Xfce Libraries


Exo is an extension library used in the Xfce desktop, originally developed by os-cillation. It has some helper applications that are used throughout the entire Xfce desktop to manage preferred applications and edit .desktop files.


Garcon is an implementation of the freedesktop.org compliant menu specification. It is based on GLib/GIO and aims at covering the entire specification except for legacy menus. It was started as a complete rewrite of the former Xfce menu library called libxfce4menu, which, in contrast to garcon, was lacking menu merging features essential for loading menus modified with menu editors.


The libxfce4ui library is used to share commonly used Xfce widgets among the Xfce applications.


libxfce4util is used to share commonly used non-GTK+ utilities among the Xfce applications.


thunar is a modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy to use. Its user interface is clean and intuitive and does not include any confusing or useless options by default. Thunar starts up quickly and navigating through files and folders is fast and responsive.


xfce4-panel is part of the Xfce Desktop Environment and features application launchers, panel menus, a workspace switcher and more. Many aspects of the panel can be configured through the GUI, but also by GTK+ style properties and hidden Xfconf settings.


xfconf is a hierarchical (tree-like) configuration system where the immediate child nodes of the root are called “channels”. All settings beneath the channel nodes are called “properties.”

Back to Top

GTK+/Glib Libraries

In addition to the above mentioned built-in libraries, Xfce also uses the GTK+/Glib family of libraries.


GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures.


GIO provides a modern and easy-to-use VFS API. It provides a file system abstraction which allows applications to access local and remote files with a single consistent API.


GDK is an intermediate layer which isolates GTK+ from the details of the windowing system.


GTK+ is the primary library used to construct user interfaces in GNOME applications. It provides user interface controls and signal callbacks to control user interfaces.

Back to Top

Xfce Developer Tutorials

General Xfce Development Information

For a general overview on getting involved with Xfce development, see The Ultimate Contributor's Guide to Xfce. This article provides some basic guidelines for Xfce development, fixing bugs, and becoming familiar with the Xfce community.

GTK+ Development Information

Tutorials for getting started with GTK+ are available at:

Xfce plugin Development Information

If you're looking to write a panel plugin, the xfce4-sample-plugin provides a base to get started.

Back to Top

Back to main Xfce Development Information page