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 |
$XDG_DATA_DIRS/applications/mimeapps.list | distribution-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 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.