LLMpediaThe first transparent, open encyclopedia generated by LLMs

Desktop Entry Spec

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Freedesktop.org Hop 4
Expansion Funnel Raw 61 → Dedup 23 → NER 23 → Enqueued 18
1. Extracted61
2. After dedup23 (None)
3. After NER23 (None)
4. Enqueued18 (None)
Similarity rejected: 2
Desktop Entry Spec
NameDesktop Entry Spec
Developerfreedesktop.org
Released2000s
Latest releaseongoing
Operating systemUnix-like
Licenseopen standard

Desktop Entry Spec

The Desktop Entry Spec defines a standardized text-file format used by freedesktop.org and interoperable desktop environments such as KDE, GNOME, XFCE, MATE and LXDE to describe application launchers, menu items, and other metadata consumed by components like XDG Base Directory Specification, XDG Autostart Specification and window managers such as Metacity and KWin. It enables consistent behavior across distributions including Debian, Ubuntu, Fedora, Arch Linux and openSUSE by prescribing keys, groups, and localization rules that are implemented by desktop shells, file managers (e.g., Nautilus, Dolphin, Thunar) and session managers such as systemd user sessions.

Overview

The spec is maintained by freedesktop.org contributors and aligns with standards used by desktop ecosystems including KDE Plasma, GNOME Shell, Unity (user interface), XFCE4, LXQt and Enlightenment. It draws on legacy practices from X11 desktops and integrates with modern systems like Wayland compositors, systemd-based session handling and distribution packaging policies from Red Hat, Debian Project and Canonical. Implementations appear in menu systems, application launchers, autostart facilities and software centers such as GNOME Software and Discover (software).

Specification Details

The format is an INI-like file with sections and key=value pairs; primary sections include [Desktop Entry] and optional groups defined by the spec. Important keys reference icons from standards such as Icon Theme Specification and mime types registered with freedesktop.org's Shared MIME-info Database. Localization follows the conventions used by gettext and internationalization efforts in projects like KDE i18n and GNOME Internationalization. The spec interacts with packaging metadata used by RPM (file format), Debian Policy, AppStream and container runtimes like Flatpak and Snapcraft.

Entry Keys and Groups

Common keys include Name, GenericName, Comment, Exec, TryExec, Icon, Terminal, Type, MimeType, Categories, StartupNotify, OnlyShowIn, NotShowIn, DBusActivatable and Hidden. These keys are used by desktop shells such as GNOME Shell and KDE Plasma and by menu generators in projects like freedesktop.org’s menu specification and XDG Menu implementations. The Categories key references taxonomy used by software centers and distributions including GNOME Software and Discover (software), while MimeType keys integrate with xdg-mime and the Shared MIME-info Database.

File Location and Naming

Desktop entry files typically reside in well-known directories defined by XDG Base Directory Specification such as /usr/share/applications, /usr/local/share/applications and ~/.local/share/applications, and follow naming conventions used by packaging systems like RPM (file format) and Debian. The spec informs how desktops like KDE Plasma and GNOME discover and prioritize entries, interacting with system services such as systemd user units and session autostart mechanisms described in XDG Autostart Specification.

Desktop Entry Examples

Examples include application launchers for widely distributed programs such as Firefox, LibreOffice, VLC media player, GIMP and Inkscape, as well as specialized entries for utilities in GNOME and KDE ecosystems. Desktop entries for web applications tie into initiatives like Web Application Manifest adapters, while platform-packaged entries for Flatpak, Snapcraft and traditional Debian or RPM packages demonstrate variant Exec and Icon handling. Menu integration examples appear in distributions produced by organizations such as Canonical and Red Hat.

Implementation and Adoption

Adoption spans major desktop environments (e.g., GNOME, KDE Plasma, XFCE4, LXQt), distributions like Fedora, Debian, Ubuntu and openSUSE, and application ecosystems such as Flatpak, Snapcraft and AppImage. Desktop environments implement the spec in components like GIO, libfm, KService and menu handling libraries. The spec is referenced in packaging guidelines by projects including Debian Project and Freedesktop packaging efforts and is part of interoperability work with organizations such as Linux Foundation initiatives that coordinate cross-project standards.

Security and Sandboxing Considerations

Security considerations include handling of Exec keys, environment variables, and user-controlled files in ~/.local/share/applications, which affect privilege boundaries and attack surfaces relevant to sandboxing systems such as Flatpak and Snapcraft. Interaction with desktop portals like xdg-desktop-portal and session managers including systemd influences permission models and desktop isolation. Desktop entry handling must account for potential spoofing via Icon and Name values and adhere to packaging security practices promoted by projects like Debian Project, Red Hat and AppArmor/SELinux confinement models.

Category:Freedesktop.org specifications