desktop-file-utils

desktop-file-utils contains a few command line utilities for working with desktop entries:

  • desktop-file-validate: validates a desktop file and prints warnings/errors about desktop entry specification violations.
  • desktop-file-install: installs a desktop file to the applications directory, optionally munging it a bit in transit.
  • update-desktop-database: updates the database containing a cache of MIME types handled by desktop files. It requires GLib to compile, because the implementation requires Unicode utilities and such.

Development

The development occurs in git, in the xdg/desktop-file-utils repository. Bugs should be reported in Bugzilla.

Download

Tarballs can be found at http://www.freedesktop.org/software/desktop-file-utils/releases/

  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.23.tar.xz
    • desktop-file-validate
      • Accept version 1.1 desktop files (Matthias Clasen).
      • Add Cinnamon, EDE and LXQt to the list of registered desktop environments (fdo#73497, fdo#56353, fdo#79561) (Michael Webster, David Faure, Jauhien Piatlicki).
      • Allow multipart/related MIME type; it's used for MHTML (fdo#93376) (Hans Petter Jansson).
      • Ensure DBusActivatable filenames conform to reverse-DNS notation (fdo#66904) (Hans Petter Jansson).
      • Downgrade trailing semicolons to optional (fdo#76902) (Jerome Leclanche).
      • Fix buffer over-read (fdo#94303) (Hans Petter Jansson; reported by Hanno Boeck and Agostino Sarubbo).
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.22.tar.xz
    • desktop-file-validate
      • add DBusActivatable key to allowed keys (Matthias Clasen)
      • warn about OnlyShowIn in Action groups (Matthias Clasen)
      • allow validating multiple desktop files (Matthias Clasen)
      • improve help output (Matthias Clasen)
      • update man page (Matthias Clasen)
    • update-desktop-database
      • list only once a desktop file per mime type (Vincent)
    • misc
      • honor NOCONFIGURE=1 (Colin Walters)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.21.tar.xz
    • desktop-file-validate
      • update to current version of menu specification (Vincent):
        • only print hint if no main category is present, not an error
        • make Science a main category
        • add new registered categories: Adult, Feed, Humanities, Maps, Shooter, Spirituality, XFCE
        • update related categories
        • add TDE to list of registered OnlyShowIn
      • accept and validate GNOME3/GSettings for AutostartCondition (Vincent)
      • output hint if more than one main category is present (Vincent)
      • output hint about suggested related categories (Vincent)
    • misc
      • do not require glib >= 2.28 for build (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.20.tar.xz
    • desktop-file-install
      • fix list of locale strings without trailing slash (Matthias Clasen)
    • desktop-file-validate
      • add MATE and Razor to list of registered environments (Vincent)
      • validate Desktop Actions (Giovanni Campagna, Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.19.tar.xz
    • desktop-file-install
      • respect order of edit options (Vincent)
      • add --add-not-show-in/--remove-not-show-in options (Vincent)
      • add options to set Name, ?GenericName, Comment, Icon keys (Vincent)
      • add --set-key/--set-value options to set an arbitrary key (Vincent)
      • remove localized keys when setting/removing a key (Vincent)
      • copy translations when copying a key (Vincent)
      • create a desktop-file-edit symlink to desktop-file-install to simply edit .desktop files (without having to pass --dir) (Vincent)
      • look at RPM_BUILD_ROOT to know where to install desktop files
      • minor UI improvements (Vincent)
    • desktop-file-validate
      • add Unity to list of registered environments (Vincent)
      • deal with various zz-application/zz-winassoc-XXX mime types (Vincent)
      • mark all zz-application/* MIME types as aliases (Vincent)
      • add support for updated Keywords key (Vincent)
    • update-desktop-database
      • deal with various zz-application/zz-winassoc-XXX mime types (Vincent)
      • mark all zz-application/* MIME types as aliases (Vincent)
      • ignore desktop files with Hidden=true (Vincent)
    • misc
      • modernize build system a bit (Vincent)
      • update man pages (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.18.tar.bz2
    • desktop-file-validate
      • accept x-scheme-handler/* mime types (Vincent)
    • update-desktop-database
      • sort mime types alphabetically in generated cache (Vincent)
      • accept x-scheme-handler/* mime types (Vincent)
    • misc
      • improve build system (Vincent)
      • minor documentation fixes (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.17.tar.bz2
    • desktop-file-validate
      • accept chemical/* mime types as valid types (Vincent)
      • make icon names with an extension for Icon key a non-fatal error (Vincent)
    • update-desktop-database
      • accept chemical/* mime types as valid types (Vincent)
      • ignore --verbose if --quiet is also passed (Vincent)
      • make sure to always output lists in the keyfile we generate (Vincent)
    • misc
      • improve build system (Vincent)
      • update documentation (Vincent)
      • add man pages (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.16.tar.bz2
    • desktop-file-install
      • do not unlink the destination file if it's the same as the source file in desktop-file-install (Vincent)
    • desktop-file-validate
      • check that a main category is included in the Categories (Vincent)
      • check that categories required by another one are present (Vincent)
      • do not always show warnings about KDE specific uses (Vincent)
      • check that the Comment does not look like the Name and the ?GenericName (Vincent)
      • display error about multiple keys with the same name earlier (Vincent)
      • improve MIME type check to make sure that the MIME types are valid (Vincent)
      • add LXDE in the list of registered ?OnlyShowIn values (Vincent)
      • add "warning" to error strings to make them easily greppable (Vincent)
      • handle ?AutostartCondition key, as proposed for the autostart specification and used in GNOME (Vincent)
      • accept empty Categories key as valid (Vincent)
      • make new errors non-fatal to give some time to maintainers to fix their .desktop file after a release of desktop-file-utils (Vincent)
      • plug leak (Vincent)
      • code cleanups (Vincent)
    • update-desktop-database
      • improve MIME type check to make sure that the MIME types are valid (Vincent)
      • improve error messages (Erik Hovland, Vincent)
      • fix format string vulnerability warning (Vincent)
    • misc
      • use AM_SILENT_RULES (Vincent)
      • improve build system (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.15.tar.gz
    • make the extension check for Icon key a warning instead of an error for now (Ray Strode)
    • Fix a crash in update-desktop-database when there's no group (Vincent)
    • Fix a crash in the validator happening for very small lines (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.14.tar.gz
    • update of the Emacs editing mode for .desktop files (Ville Skyttä)
    • make desktop-file-install print an error when trying to install a non-existing desktop file, or a desktop file that can't be read (Vincent)
    • make the validator check the content of the Icon key (Vincent)
    • make the validator accept X-Foo as a valid environment (this was added to the spec) (Stanislav Brabec, Vincent)
    • really handle the -m command line argument for desktop-file-install (Matthias Clasen)
    • make desktop-file-install accept as one valid argument multiple categories/only-show-in/mime-types values. Now --add-category="GNOME;GTK" works as expected. (Vincent)
    • make desktop-file-install validate the created desktop file before removing the original file, and unlink it if it's not valid (Vincent)
    • code cleanups for desktop-file-install (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.13.tar.gz
    • rewrite validator, and update it for desktop entry specification 1.0. The validator should be stricter and report more useful messages. (Vincent)
    • add --warn-kde and --no-warn-deprecated command line options to desktop-file-validate (Vincent)
    • port desktop-file-install to GKeyFile (Vincent)
    • don't require --vendor for desktop-file-install (Vincent)
    • some general module cleanup (Vincent)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.12.tar.gz
    • improves category validation code to not catch false positives (Vincent Fretin, Ville Skyttä, Ray Strode, Vincent Untz)
    • make category validation code non-fatal (Ray)
    • fix mem leaks and double frees (Pascal Terjan)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.11.tar.gz
    • Validate desktop file categories (Emmet Hikory, Vincent Untz)
    • Use GKeyFile instead of the old egg code in update-desktop-database (Vincent)
    • Use GOption instead of popt (Vincent)
    • Fix grammar problem in one of the strings (Moritz Barsnick)
    • NULL terminate search patch in update-desktop-database (Mike Hearn)
    • Fix language to encoding mapping to match spec (Ville Skyttä)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.10.tar.gz
    • Remove all menus code (Mark ?McLoughlin)
    • Don't try and add key/value pairs to comments (Miloslav Trmac)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.9.tar.gz
    • Many update-desktop-database improvements (Ray Strode, Dan Williams)
    • Fix desktop-file-install --remove-only-show-in (Ray Strode)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.8.tar.gz
    • Fix various leaks (Kjartan Maraas)
    • Update with latest libegg code (Ray Strode)
    • Menu method work (Mark ?McLoughlin, Dan Williams)
      • Reload the menu when .desktop/.directory files change
      • Respect ?NoDisplay in .desktop/.directory files
      • Remove empty submenus
      • Report the last modification time of the tree
      • Support setting the ?OnlyShowIn name
      • Add a reasonable default set of schemes
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.7.tar.gz
    • Add update-desktop-database (Ray Strode)
    • Emacs editing mode for .desktop files (Ville Skyttä)
    • Update to latest spec, improve error messages (Ville Skyttä)
    • Warning fixes (Mark ?McLoughlin)
    • distcheck fixes (Jonathan Blandford)
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.6.tar.gz
    • Bring up to date with version 0.8 of the menu spec
    • Don't crash when a .desktop file is a symlink to a non-existant file
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.5.tar.gz
    • Don't segfault with .desktop files which have a leading comment
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.4.tar.gz
    • Add support for "Desktop Action" sections
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.3.tar.gz
    • Create target dir of desktop-file-install if nonexistent; improve some error messages; fix ?OnlyShowIn handling; add --print-available option to dump desktop files being considered by desktop-menu-tool; rename obsolete [KDE Desktop Entry] section if found; fix a crash; verify proper spelling of KDE and GNOME in ?OnlyShowIn; add a --remove-key option; check that string lists end in a semicolon; add --copy-name-to-generic-name and vice versa; fix bug in --delete-original that made it not work
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.2.tar.gz
    • Adds desktop-menu-tool to parse vfolder menus and generate a symlink tree or just print them out.
  • http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.1.tar.gz
    • Initial release. Contains desktop-file-validate and desktop-file-install.