Freedesktop.org

"XDG" redirects here. For the game development division External Development Group, see THQ.

Open-source desktop environment software project

This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Freedesktop.org" – news · newspapers · books · scholar · JSTOR (September 2012) (Learn how and when to remove this message)

|

freedesktop.org

Type of site

| Software development management system
Available in| English
Created by| Havoc Pennington
URL| www.freedesktop.org/wiki/
Commercial| No
Launched| March 2000; 24 years ago (2000-03)
Current status| Online

freedesktop.org (fd.o), formerly X Desktop Group (XDG),[1][2] is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.[3]

The project was founded by Havoc Pennington, a GNOME developer working for Red Hat in March 2000. Widely used open-source X-based desktop projects, such as GNOME, KDE's Plasma Desktop, and Xfce, are collaborating with the freedesktop.org project. In 2006, the project released Portland 1.0 (xdg-utils), a set of common interfaces for desktop environments.[4] freedesktop.org joined the X.Org Foundation in 2019.[5][6] Some of the project's servers are hosted by Portland State University.[7]

## Hosted projects

[edit]

freedesktop.org provides hosting for a number of relevant projects.[8][9] These include:

### Windowing system and graphics

[edit]

Software related to windowing systems and graphics in general

* Cairo, a vector graphics library with cross-device output support
* Direct Rendering Infrastructure (DRI), a Linux API to access the graphics hardware, used by X11, Wayland compositors, Mesa 3D, etc.
* Glamor,[10] a 2D graphics common driver for X server on graphics chipsets which have support for OpenGL/EGL/GBM APIs
* Mesa 3D, an implementation of several graphics APIs such as Vulkan and OpenGL
* Pixman,[11] a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization; users include the cairo graphics library and the X.Org Server
* Poppler, a PDF rendering library
* Video Acceleration API
* Wayland, a protocol to replace X11; features: no tearing, lag, redrawing or flicker
* X.Org Server, the official reference implementation of the X11 protocol
* XCB, an Xlib replacement
* Xephyr, a display server
* wlroots, a modular Wayland compositor library

### Other

[edit]

* D-Bus, a message bus akin to DCOP (KDE 3) and Bonobo (GNOME 2)
* Elektra, a library for reading and writing configuration
* FreeType, a text rendering library
* fontconfig, a library for font discovery, name substitution, etc.
* fprint, a library for consumer fingerprint reader devices
* Geoclue, a geoinformation service[12]
* GStreamer, a cross-platform multimedia framework
* GTK-Qt engine, a GTK+ 2 engine which uses Qt to draw the graphical control elements, providing the look and feel of KDE applications to GTK+2 applications
* HAL (Hardware Abstraction Layer), a consistent cross-operating system layer; deprecated and replaced by udev
* kmscon, a userspace virtual console to replace the Linux console; uses the KMS driver and supports Unicode
* luit, a tool used by terminal emulators
* libinput,[13] 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, a sound server frontend providing software mixing, network audio, and per application volume control
* PipeWire, a low-latency server for handling sandbox-friendly audio and video streams on Linux, which provides an implementation of PulseAudio, JACK, and ALSA as well as secure methods for screenshotting and screencasting on Wayland compositors
* systemd, a comprehensive init framework to start and manage services and sessions meant to replace older init models
* Xft, anti-aliased fonts using the FreeType library, rather than the old X core fonts
* pkg-config, a helper program used to generate flags for compiler and linker to include necessary libraries

Also, Avahi (a free Zeroconf implementation) started as a fd.o project but has since become a separate project.

### Base Directory Specification

[edit]

See also: Filesystem Hierarchy Standard

XDG Base Directory Specification (XDG BDS) introduces a range of variables where user-specific files used by programs should be found.[14] Many tools and applications utilize these variables by default.[15]

#### User directories

[edit]

Besides the variables mentioned below, XDG BDS also specifies that users' local binary files may be installed into `$HOME/.local/bin`. Systems compliant with the spec are expected to make this directory available in their CLI's `PATH` environment variable.[14]

`XDG_DATA_HOME`
For user application's own data files
Default to `$HOME/.local/share`
`XDG_CONFIG_HOME`
For user's app configuration files
Default to `$HOME/.config`
`XDG_STATE_HOME`
For user-specific app session data, which should be stored for future reuse
Default to `$HOME/.local/state`
May include logs, recently used files, application-specific information (e.g. window layout, views, opened files, undo history, etc.), akin to session data that should be stored by app by request of system session manager, like X session manager
`XDG_CACHE_HOME`
For user-specific apps cache files
Default to `$HOME/.cache`
`XDG_RUNTIME_DIR`
For user-specific app runtime files like sockets which must not survive reboot and full logout/login cycles

#### System directories

[edit]

`XDG_DATA_DIRS`
Colon-separated list of preference-ordered paths to search for data files in
Default to `/usr/local/share/:/usr/share/`
`XDG_CONFIG_DIRS`
The same as above but for config files
Default to `/etc/xdg/`

## Stated aims

[edit]

The project aims to catch interoperability issues much earlier in the process. It is not for legislating formal standards. Stated goals include:

* Collect existing specifications, standards, and documents related to X desktop interoperability and make them available in a central location.
* Promote the development of new specifications and standards to be shared among multiple X desktops.
* Integrate desktop-specific standards into broader standards efforts, such as Linux Standard Base and the ICCCM.
* Work on the implementation of these standards in specific X desktops.
* Serve as a neutral forum for sharing ideas about X desktop technology.
* Implement technologies that further X desktop interoperability and free X desktops in general.
* Promote X desktops and X desktop standards to application authors, both commercial and volunteer.
* Communicate with the developers of free operating system kernels, the X Window System itself, free OS distributions, and so on to address desktop-related problems.
* Provide source repositories (git[16] and CVS[17]), web hosting, Bugzilla, mailing lists, and other resources to free software projects that work toward the above goals.

## See also

[edit]

* Free and open-source software portal

* Comparison of source-code-hosting facilities
* Linux on the desktop

## References

[edit]

1. ^ "X desktop group".
2. ^ "Freedesktop.org, home of the X Desktop Group". Archived from the original on 2001-02-02. Retrieved 2013-08-26.`{{cite web}}`: CS1 maint: bot: original URL status unknown (link)
3. ^ "Specifications". freedesktop.org. Retrieved 2023-10-27.
4. ^ Portland points desktop Linux at $10 billion market Archived October 12, 2006, at the Wayback Machine, DesktopLinux.com, 11 October 2006
5. ^ "X.Org To Join Forces With FreeDesktop.org While Foundation Elections Hit A Snag". Retrieved 9 September 2021.
6. ^ Larabel, Michael (11 April 2019). "X.Org To Join Forces With FreeDesktop.org While Foundation Elections Hit A Snag". Phoronix. Retrieved 2023-10-27.
7. ^ "Welcome to freedesktop.org". Freedesktop.org. Retrieved 27 October 2023.
8. ^ "FreedesktopProjects". freedesktop.org. Retrieved 2013-09-22.
9. ^ "Software". freedesktop.org. Retrieved 2013-09-22.
10. ^ "Glamor". freedesktop.org. 17 May 2013. Retrieved 31 October 2015.
11. ^ "Pixman". pixman.org.
12. ^ Wallen, Jack (6 December 2011). "DIY: Get top-quality open source security tools in one distro". News, Tips, and Advice for Technology Professionals. Archived from the original on 2021-04-18. Retrieved 2019-06-21.
13. ^ "[ANNOUNCE] libinput 0.4.0". freedesktop.org. 2014-06-24.
14. ^ a b XDG Base Directory Specification, freedesktop.org, accessed: 2021-05-15.
15. ^ "XDG Base Directory - ArchWiki". wiki.archlinux.org. Retrieved 2021-10-08.
16. ^ "freedesktop.org git". Gitweb.freedesktop.org. Retrieved 2013-09-22.
17. ^ "ViewVC Repository Listing". WebCVS.freedesktop.org. Archived from the original on 2013-10-08. Retrieved 2013-09-22.

## Sources

[edit]

* The Big freedesktop.org Interview (Rayiner Hashem & Eugenia Loli-Queru, OSNews, 24 November 2003)

## External links

[edit]

* Official website

* v
* t
* e

Free and open-source software projects hosted by freedesktop.org

OS components|

| Sound|

* PulseAudio
* PipeWire

|

Graphics|

* Compiz
* DRI
* Enchant
* nouveau
* Plymouth
* Wayland
* X.Org Server
* Glamor
* Xephyr

Other|

* Avahi
* D-Bus
* Flatpak
* Kmscon
* luit
* PackageKit
* pkg-config
* Systemd

Libraries|

* AppStream
* Cairo
* FreeType
* Fontconfig
* GStreamer
* libinput
* Mesa 3D
* HarfBuzz
* Pango
* Poppler
* Swfdec
* Video Acceleration API
* XCB
* Xft

Frameworks|

* CppUnit
* Open Collaboration Services (OCS)
* Telepathy

Meetings|

* Create Project
* Portland Project

* v
* t
* e

Free and open-source software

General|

* Alternative terms for free software
* Comparison of open-source and closed-source software
* Comparison of source-code-hosting facilities
* Free software
* Free software project directories
* Gratis versus libre
* Long-term support
* Open-source software
* Open-source software development
* Outline
* Timeline

Software
packages|

* Audio
* Bioinformatics
* Codecs
* Configuration management
* Drivers
* Graphics
* Wireless
* Health
* Mathematics
* Office suites
* Operating systems
* Routing
* Television
* Video games
* Web applications
* E-commerce
* Android apps
* iOS apps
* Commercial
* Formerly proprietary
* Formerly open-source

Community|

* Free software movement
* History
* Open-source-software movement
* Events
* Advocacy

Organisations|

* Free Software Movement of India
* Free Software Foundation

Licenses|

* AFL
* Apache
* APSL
* Artistic
* Beerware
* BSD
* Creative Commons
* CDDL
* EPL
* Free Software Foundation
* GNU GPL
* GNU AGPL
* GNU LGPL
* ISC
* MIT
* MPL
* Python
* Python Software Foundation License
* Shared Source Initiative
* Sleepycat
* Unlicense
* WTFPL
* zlib

| Types and
standards|

* Comparison of licenses
* Contributor License Agreement
* Copyleft
* Debian Free Software Guidelines
* Definition of Free Cultural Works
* Free license
* The Free Software Definition
* The Open Source Definition
* Open-source license
* Permissive software license
* Public domain

|

Challenges|

* Digital rights management
* License proliferation
* Mozilla software rebranding
* Proprietary device drivers
* Proprietary firmware
* Proprietary software
* SCO/Linux controversies
* Software patents
* Software security
* Trusted Computing

Related
topics|

* Forking
* GNU Manifesto
* Microsoft Open Specification Promise
* Open-core model
* Open-source hardware
* Shared Source Initiative
* Source-available software
* The Cathedral and the Bazaar
* Revolution OS

* Portal
* Category

* v
* t
* e

Software in the Public Interest

People|

* Martin Michlmayr (President)
* Bdale Garbee

Projects|

* 0 A.D.
* Arch Linux
* Debian
* Drizzle
* Drupal
* FFmpeg
* Fluxbox
* freedesktop.org
* FreedomBox
* Gallery Project
* GNU TeXmacs
* GNUstep
* Jenkins
* LibreOffice
* MinGW
* Open and Free Technology Community
* Open Bioinformatics Foundation
* Open64
* OpenEmbedded
* OpenVAS
* OpenWrt
* OpenZFS
* PostgreSQL
* Privoxy
* SproutCore
* X.Org Foundation

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template