There are numerous places to configure default applications on Linux. This page will attempt to address problems related to the following issues:
- You need to change a certain default application (e.g. after switching desktop environments), but there appears to be nowhere to configure it, or an application ignores your configuration
- You regularly switch back and forth between several desktop environments, and need to configure some applications (e.g. file manager) on a per-desktop-environment basis, but need to configure others (e.g. web browser) globally
- 1 Changing a default application
- 2 Maintaining settings for multiple desktop environments
- 3 Troubleshooting
Changing a default application
xdg-open is a desktop-independent tool for configuring default applications.
Exactly how the config files mesh together
This is not necessary reading, but here is, as nearly as I can tell, xdg-open looks for the following sections in the following files.
~/.local/share/applications/mimeapps.list, [Default Applications] section ~/.local/share/applications/mimeapps.list, [Added Applications] section ~/.local/share/applications/defaults.list /usr/share/applications/mimeapps.list, [Default Applications] section /usr/share/applications/mimeapps.list, [Added Applications] section /usr/share/applications/defaults.list
Note that ordinarily, if a higher-precedence config file (or config file section) specifies an application that is not installed, it will fall-back to a lower-precedence config file (or section). However, if a non-existent application is specified in any
~/.local/ file, then all of the
/usr/ files will be ignored for that MIME type.
See also this page on freedesktop.org, "Default application ordering" section.
The xdg-open settings are usually recognized by Gnome, but if they aren't, there are still other methods.
As far as I can tell, on Gnome 3, there are two configuration systems, GConf (older) and dconf (newer). GConf can be configured with
gconf-editor; in particular, you can try messing with the Template:Filename key, but changing settings there didn't fix any problems I had. dconf can be configured with the
To configure the default terminal for the package nautilus-open-terminal to Konsole, use
$ gsettings set org.gnome.desktop.default-applications.terminal exec konsole $ gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"
The second command tells
konsole to expect a command to be passed to it as part of the invocation. nautilus-open-terminal needs this because it passes a
cd command in order to switch to the appropriate directory. For example, opening a terminal in your
~/Desktop directory will invoke something like
$ konsole -e cd "~/Desktop"
To configure the web browser used by the AUR package gnome-gmail-notifier, run
Maintaining settings for multiple desktop environments
OnlyShowIn field of a .desktop file may be useful; see this page. I haven't tried setting this field yet; please update this wiki page if you have any info about using
Sometimes, a certain application will not appear in the right-click Open With... dialog. To fix this problem, locate the
.desktop file in
/usr/share/applications, edit it as root, and add
%U to the end of the
Exec= line. For example, Kile currently has this problem; you need to edit
/usr/share/applications/kde4/kile.desktop and change the line reading
Exec=kile to read
Exec=kile %U. Also, please file a bug against the upstream project if you notice this problem.
You may also have to edit the
MimeTypes list in the
.desktop file if you install extensions that allow an application to handle additional MIME types.