Skip to content
Search

Freedesktop.org

lastmod 2026-02-18created 2017-01-1814 edits

freedesktop.org is a site that documents specifications for interoperability and shared technologies in information processing related to the X Window System and desktops built on it, and hosts open-source software projects that use those components.

Categories

Specifications

X Desktop Group

xdg originally stood for the X Desktop Group, now known as freedesktop.org, which developed a set of common standards across various desktop environments such as GNOME, KDE, and LXDE.

These standards are important because they mean that xdg-open can be used in a standards-compliant desktop environment to open a file with the default application.

For example, you can just type the following.

$ xdg-open my.pdf

Regardless of the running desktop environment, the default opener such as gnome-open is invoked.

Hosted Projects

Windowing system and graphics

Software related to windowing systems and graphics in general

  • Cairo, a vector graphics library that supports cross-device output
  • Direct Rendering Infrastructure (DRI), an interface that lets users safely access video hardware without sending any data to the X server
  • Glamor, 2D graphics common driver for X server, it supports a variety of graphics chipsets which have supports for OpenGL/EGL/GBM APIs
  • Mesa 3D, an OpenGL implementation
  • Pixman, is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X.Org Server
  • Poppler, a PDF rendering library
  • Video Acceleration API
  • Wayland, protocol to replace X11; features: no tearing, lag, redrawing or flicker
  • X.Org Server: The official implementation of the official X11 specification. The current version is derived from the XFree86 version just before its license change.
  • XCB, a replacement for Xlib
  • Xephyr is a display server

Other

  • D-Bus, a message bus that plays a role similar to DCOP in KDE3 and Bonobo in GNOME2.
  • Elektra, a library for reading and writing configuration
  • fontconfig A library that performs font-related tasks such as font lookup and font name substitution
  • fprint, a library for the consumer fingerprint reader devices
  • Geoclue, a geoinformation service.
  • GStreamer is a cross-platform multimedia framework.
  • GTK-Qt engine, an engine for GTK+ that draws widgets through Qt to reduce the visual mismatch between Qt applications and GTK+ applications
  • Hardware Abstraction Layer (HAL): a consistent cross-OS layer; it has been deprecated and replaced by udev.
  • kmscon, userspace virtual console to replace Linux console, uses KMS driver and supports Unicode
  • luit, a tool used by terminal emulators
  • libinput a library to handle input devices in Wayland compositors and to provide a generic X.Org input driver. It provides device detection, device handling, input device event processing and abstraction to * minimize the amount of custom input code compositors need to provide the common set of functionality that users expect
  • PulseAudio is a sound server frontend meant to provide software mixing, network audio, and per application volume control.
  • systemd is a comprehensive init framework to start and manage services and sessions meant to replace older init models.
  • Xft, anti-aliased fonts using FreeType, rather than the old X core fonts.
  • pkg-config is a helper program used to generate flags for compiler and linker to include necessary libraries.
  • PolicyKit: a system-wide authorization management tool
  • notify-send - A command-line tool that sends desktop notifications via freedesktop.

XDG Base Directory Specification

XDG_CONFIG_HOME
Where user-specific configurations should be written (analogous to /etc).
Should default to $HOME/.config.
XDG_CACHE_HOME
Where user-specific non-essential (cached) data should be written (analogous to /var/cache).
Should default to $HOME/.cache.
XDG_DATA_HOME
Where user-specific data files should be written (analogous to /usr/share).
Should default to $HOME/.local/share.
XDG_STATE_HOME
Where user-specific state files should be written (analogous to /var/lib).
Should default to $HOME/.local/state.
XDG_RUNTIME_DIR
Used for non-essential, user-specific data files such as sockets, named pipes, etc.
Not required to have a default value; warnings should be issued if not set or equivalents provided.
Must be owned by the user with an access mode of 0700.
Filesystem fully featured by standards of OS.
Must be on the local filesystem.
May be subject to periodic cleanup.
Modified every 6 hours or set sticky bit if persistence is desired.
Can only exist for the duration of the user's login.
Should not store large files as it may be mounted as a tmpfs.
pam_systemd sets this to /run/user/$UID.

XDG user directories

Both the local ~/.config/user-dirs.dirs and global /etc/xdg/user-dirs.defaults configuration files use the following environment variable format to point to user directories:

XDG_DIRNAME_DIR="$HOME/directory_name"

An example of the local one (~/.config/user-dirs.dirs) is as follows (all template directories):

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"

Desktop entry

See Desktop Entry for details.

Favorite site

author Zer0 sitemap