Freedesktop.org

Revision as of 21:39, 12 May 2025 by imported>Liz (Removing link(s) to "GTK-Qt": Removing links to deleted page GTK-Qt.)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Redirect Template:Short description Template:Primary sources Template:Lowercase Template:Infobox website freedesktop.org (fd.o), formerly X Desktop Group (XDG),<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> 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.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

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.<ref>Portland points desktop Linux at $10 billion market Template:Webarchive, DesktopLinux.com, 11 October 2006</ref> freedesktop.org joined the X.Org Foundation in 2019.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Some of the project's servers are hosted by Portland State University.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Hosted projectsEdit

freedesktop.org provides hosting for a number of relevant projects.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> These include:

Windowing system and graphicsEdit

Software related to windowing systems and graphics in general

|CitationClass=web }}</ref> 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,<ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref> 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

OtherEdit

  • 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
  • Template:AnchorGeoclue, a geoinformation service<ref name="geoclue">{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

|CitationClass=web }}</ref> 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 SpecificationEdit

Template:See also XDG Base Directory Specification (XDG BDS) introduces a range of variables where user-specific files used by programs should be found.<ref name=":0">XDG Base Directory Specification, freedesktop.org, accessed: 2021-05-15.</ref> Many tools and applications utilize these variables by default.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

User directoriesEdit

Besides the variables mentioned below, XDG BDS also specifies that users' local binary files may be installed into <syntaxhighlight lang="text" class="" style="" inline="1"> $HOME/.local/bin</syntaxhighlight>. Systems compliant with the spec are expected to make this directory available in their CLI's <syntaxhighlight lang="text" class="" style="" inline="1">PATH</syntaxhighlight> environment variable.<ref name=":0" />

<syntaxhighlight lang="text" class="" style="" inline="1">XDG_DATA_HOME</syntaxhighlight>
For user application's own data files
Default to <syntaxhighlight lang="text" class="" style="" inline="1">$HOME/.local/share</syntaxhighlight>
<syntaxhighlight lang="text" class="" style="" inline="1">XDG_CONFIG_HOME</syntaxhighlight>
For user's app configuration files
Default to <syntaxhighlight lang="text" class="" style="" inline="1">$HOME/.config</syntaxhighlight>
<syntaxhighlight lang="text" class="" style="" inline="1">XDG_STATE_HOME</syntaxhighlight>
For user-specific app session data, which should be stored for future reuse
Default to <syntaxhighlight lang="text" class="" style="" inline="1">$HOME/.local/state</syntaxhighlight>
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
<syntaxhighlight lang="text" class="" style="" inline="1">XDG_CACHE_HOME</syntaxhighlight>
For user-specific apps cache files
Default to <syntaxhighlight lang="text" class="" style="" inline="1">$HOME/.cache</syntaxhighlight>
<syntaxhighlight lang="text" class="" style="" inline="1">XDG_RUNTIME_DIR</syntaxhighlight>
For user-specific app runtime files like sockets which must not survive reboot and full logout/login cycles

System directoriesEdit

<syntaxhighlight lang="text" class="" style="" inline="1">XDG_DATA_DIRS</syntaxhighlight>
Colon-separated list of preference-ordered paths to search for data files in
Default to <syntaxhighlight lang="text" class="" style="" inline="1">/usr/local/share/:/usr/share/</syntaxhighlight>
<syntaxhighlight lang="text" class="" style="" inline="1">XDG_CONFIG_DIRS</syntaxhighlight>
The same as above but for config files
Default to <syntaxhighlight lang="text" class="" style="" inline="1">/etc/xdg/</syntaxhighlight>

Stated aimsEdit

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<ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref> and CVS<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>), web hosting, Bugzilla, mailing lists, and other resources to free software projects that work toward the above goals.

See alsoEdit

Template:Portal

ReferencesEdit

Template:Reflist

SourcesEdit

External linksEdit

Template:Freedesktop.org Template:FOSS Template:Software in the Public Interest