xdg-open is a desktop-independent tool for configuring the default applications of a user. Many applications invoke the Template:Codeline command internally.
Inside a desktop environment (e.g. GNOME, KDE, Xfce, etc.),
xdg-open simply passes the arguments to that desktop environment's file-opener application (
exo-open, respectively), which means that the associations are left up to the desktop environment. When no desktop environment is detected (for example when one runs a standalone window manager, e.g. Openbox),
xdg-open will use its own configuration files.
xdg-open is part of thepackage available in extra:
pacman -S xdg-utils
xdg-open is for use inside a desktop session only. It is not recommended to use xdg-open as root.
The config file
xdg-open use configuration files located at
~/.local/share/applications/defaults.list(for a single user) and
/usr/share/applications/defaults.list (system wide). Its format is as follows:
[Default Applications] mimetype=desktopfile1;desktopfile2...
[Default Applications] text/html=firefox.desktop inode/directory=kde4-dolphin.desktop;Thunar.desktop;nautilus.desktop
The best way to look up the MIME type is to read the
MimeTypes list in your application's
Some tools are available to edit the configuration files:
To make Thunar the default file-browser, i.e. the default application for opening folders.
xdg-mime default Thunar.desktop inode/directory
to useas the default PDF viewer:
$ xdg-mime default xpdf.desktop application/pdf
This should create an entry in your local MIME database:
[Default Applications] application/pdf=xpdf.desktop
Your PDF files should be opened withnow.
mimetype inpackage is more intuitive.
To select default application for a given extension (you need a sample file):
$ mimetype -d file.extension
AUR provide and contains a
xdg-open script patched to make use of
mimeo the same way
gnome-open would be used. Mimetype<->application associations can then be customised easily in
Some environment variables such as
DESKTOP_SESSION will change behaviour of xdg-open. See Environment Variables for more information.