Desktop Entries
Contents
Desktop Entries store application metadata.
Sources
Desktop file content
A simple example
[Desktop Entry] Name=MyProg Comment=A life saver program Exec=/foo/bar/baz StartupNotify=true Terminal=false Type=Application Icon=/foo/bar/icon
A more complex example (from the specification)
[Desktop Entry] Version=1.0 Type=Application Name=Foo Viewer Comment=The best viewer for Foo objects available! TryExec=fooview Exec=fooview %F Icon=fooview MimeType=image/x-foo; Actions=Gallery;Create; [Desktop Action Gallery] Exec=fooview --gallery Name=Browse Gallery [Desktop Action Create] Exec=fooview --create-new Name=Create a new Foo! Icon=fooview-new
Desktop files databases
The desktop files are stored inside well known directories: the desktop files databases.
Databases locations
- at system level : $XDG_DATA_DIRS/applications → /usr/local/share/applications and /usr/share/applications
- at user level : $XDG_DATA_HOME/applications → ~/.local/share/applications
And also...
- /usr/share/xfce4/applications
- /usr/share/xubuntu/applications
mimeinfo.cache
Each database ows a mimeinfo.cache file, generated by update-desktop-database command which parses all the desktop entries files inside the database. This lookup table provides:
- the list of desktop files associated for every MIME type. Here are a few examples:
- application/csv=libreoffice-calc.desktop;
- application/ogg=audacity.desktop;org.xfce.Parole.desktop;vlc.desktop;
- application/rss+xml=firefox.desktop;
- the list of desktop files associated for every scheme handler (a particulat MIME type, which uses the special x tree). Here are a few examples:
- x-scheme-handler/http=firefox.desktop;
- x-scheme-handler/https=firefox.desktop;
- x-scheme-handler/magnet=transmission-gtk.desktop;
- x-scheme-handler/mailto=thunderbird.desktop;
Other files
defaults.list
- defines default desktop file for every mimetype
- to be updated by hand
- IMPORTANT : it's often a symbolic link!
- /usr/share/applications/defaults.list → /etc/gnome/defaults.list
- /usr/share/xfce4/applications/defaults.list → /etc/xfce4/defaults.list
- /usr/share/xubuntu/applications/defaults.list
→ I'm not sure it is used intensively...
bamf-2.index
- website
- file for the bamfdaemon (aka Window matching library)
- probably used by Unity...
Executables
- update-desktop-database: generates mimeinfo.cache file
- desktop-file-edit: helper tool for updating fields inside a desktop file
- desktop-file-install: installs/updates a desktop file
- desktop-file-validate: validate desktop entry files according to the Desktop Entry specification
exo-utils package provides exo-desktop-item-edit, which eases a lot desktop entries editing.