Users, system administrators, application vendors et 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.list||user overrides, desktop-specific (for advanced users)|
|$XDG_CONFIG_HOME/mimeapps.list||user overrides (recommended location for user configuration GUIs)|
|$XDG_CONFIG_DIRS/$desktop-mimeapps.list||sysadmin and ISV overrides, desktop-specific|
|$XDG_CONFIG_DIRS/mimeapps.list||sysadmin and ISV overrides|
|$XDG_DATA_HOME/applications/$desktop-mimeapps.list||for completeness, deprecated, desktop-specific|
|$XDG_DATA_HOME/applications/mimeapps.list||for compatibility, deprecated|
|$XDG_DATA_DIRS/applications/$desktop-mimeapps.list||distribution-provided defaults, desktop-specific|
In this table, $desktop is one of the names of the current desktop, lowercase (for instance, kde, gnome, xfce, etc.)
This is determined from 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.