~~NOTOC~~ {{ :xfce-64x64.png?nolink|}} ====== Xfce API Documentation ====== * **[[#Core Xfce Libraries|Core Xfce Libraries]]** * **[[#GTK+/Glib Libraries|GTK+/Glib Libraries]]** * **[[https://docs.xfce.org/contribute/dev/start|How to contribute to Xfce development]]** * **[[#Xfce Developer Tutorials|Xfce Developer Tutorials]]** * **[[https://docs.xfce.org/contribute/start#bug_reporting_and_testing|Bug Reporting and Testing]]** [[https://developer.xfce.org/|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 ==== **Exo** is an extension library used in the Xfce desktop, originally developed by [[https://www.os-cillation.de/en/opensourceprojekte/libexo/|os-cillation]]. It has some helper applications that are used throughout the entire Xfce desktop to manage preferred applications and edit ''.desktop'' files. * [[https://developer.xfce.org/exo/index.html|Exo API documentation]] ---- ==== Garcon ==== **Garcon** is an implementation of the [[https://specifications.freedesktop.org/menu-spec/latest/|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. * [[https://developer.xfce.org/garcon/index.html|Garcon API documentation]] ---- ==== libxfce4ui ==== The **libxfce4ui** library is used to share commonly used Xfce widgets among the Xfce applications. * [[https://developer.xfce.org/libxfce4ui/index.html|libxfce4ui API documentation]] ---- ==== libxfce4util ==== **libxfce4util** is used to share commonly used non-GTK+ utilities among the Xfce applications. * [[https://developer.xfce.org/libxfce4util/index.html|libxfce4util API documentation]] ---- ==== thunar ==== **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. * [[https://developer.xfce.org/thunar/index.html|thunar API documentation]] ---- ==== xfce4-panel ==== **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. * [[https://developer.xfce.org/xfce4-panel/index.html|xfce4-panel API documentation]] ---- ==== xfconf ==== **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.” * [[https://developer.xfce.org/xfconf/index.html|xfconf API documentation]] [[|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 ==== 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. * [[https://docs.gtk.org/glib/|GLib documentation - Stable release]] ==== GIO ==== 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. * [[https://docs.gtk.org/gio/|GIO]] ==== GDK ==== GDK is an intermediate layer which isolates GTK+ from the details of the windowing system. * [[https://docs.gtk.org/gdk3/|GDK]] ==== GTK+ ==== 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. * [[https://docs.gtk.org/gtk3/|GTK+]] [[|Back to Top]] ---- ===== Xfce Developer Tutorials ===== ==== General Xfce Development Information ==== For a general overview on getting involved with Xfce development, see [[https://andreldm.com/2018/12/03/xfce-contributor-guide.html|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: * [[https://docs.gtk.org/gtk3/|GTK+ 3 Tutorial (Official)]] ==== Xfce plugin Development Information ==== If you're looking to write a panel plugin, the [[https://gitlab.xfce.org/panel-plugins/xfce4-sample-plugin|xfce4-sample-plugin]] provides a base to get started. [[|Back to Top]] ---- [[https://docs.xfce.org/contribute/dev/start|Back to main Xfce Development Information page]]