File name and location

Users, system administrators, application vendors and distributions can change associations between applications and mimetypes by writing into a file called mimeapps.list.

The lookup order for this file is as follows:

$XDG_CONFIG_HOME/$desktop-mimeapps.listuser overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.listuser overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.listsysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.listsysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.listfor completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.listfor compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.listdistribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.listdistribution-provided defaults

In this table, $desktop is one of the names of the current desktop, lowercase (for instance, kde, gnome, xfce, etc.)

This is determined from taking the ascii-lowercase form of a component the environment variable $XDG_CURRENT_DESKTOP, which is a colon-separated list of names that the current desktop is known as.

The $desktop variable should be each of these values in turn.

All of the above files are referred to as "mimeapps.list" in the rest of this specification, for simplicity.

Note that the desktop-specific files can only be used for specifying the default application for a given type. It is not possible to add or remove associations from these files.

The algorithms for determining the list of all applications associated with a mime type and for determining the default application are (almost) completely unrelated, and so they are presented separately.