xdg-open is a desktop-independent tool for configuring the default applications of a user. Many applications invoke the
xdg-open command internally.
Inside a desktop environment (e.g. GNOME, KDE, or Xfce), xdg-open simply passes the arguments to that desktop environment's file-opener application (gvfs-open, kde-open, or 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.
- 1 Installation
- 2 Configuration
- 3 Drop-in replacements and useful tools
- 4 See also
xdg-open is part of the official repositories. xdg-open is for use inside a desktop session only. It is not recommended to use xdg-open as root.package available in the
xdg-open uses the configuration file mentioned in Default Applications. You can edit this file by using xdg-mime.
get mime type
To get mime type of
$ xdg-mime query filetype photo.jpg
Get default application
To get default .desktop file starter for
image/jpeg mime type:
$ xdg-mime query default image/jpeg
Set the default file-browser
To make Thunar the default file browser, i.e. the default application for opening folders:
$ xdg-mime default Thunar.desktop inode/directory
Set the default PDF viewer
To useAUR as the default PDF viewer:
$ xdg-mime default xpdf.desktop application/pdf
Set the default browser
To set the default application for
http(s):// links (replace
browser.desktop by your browser's .desktop, e.g.
$ xdg-mime default browser.desktop x-scheme-handler/http $ xdg-mime default browser.desktop x-scheme-handler/https
$ xdg-mime default browser.desktop text/html
To test if this was applied successfully, try to open an URL with xdg-open as follows:
$ xdg-open https://archlinux.org
Drop-in replacements and useful tools
|Name/Package||Description||Based on||Configuration file|
|AUR||A simple, regex-based xdg-open replacement.||custom|
|AUR||Opens objects in associated applications by matching regular expressions against object name or MIME-type.||(but alternatives can be configured)||custom|
|AUR||An intelligent and suckless replacement for xdg-open.||custom|
|AUR||Open files by MIME-type or file name using regular expressions. It can be used on its own or throughAUR.|| standard |
|AUR||A working replacement for xdg-open.||custom|
|AUR||Manages menus of application launchers, either executables or desktop files. Also opens files and URIs with launchers, desktop files, or applications associated by name or MIME-type. Can use a wrapper script to replace xdg-open.||and/or ; other alternatives and fallbacks can be configured.|| XDG standard |
The .mailcap file format used by the mutt mail program is way easier to read and write. The
/usr/bin/xdg-open, but that parser is unable to handle directories or links. The simplest solution would be to install mimeo from the AUR too and create a
/usr/bin/xdg-open with the following content:
#!/bin/sh run-mailcap $1 || mimeo $1
Then use the
~/.local/share/applications/ to associate URLs and folders with applications and the .mailcap file for normal mimetypes.
mimetype inpackage can display some mimetype-related information about a file.
$ mimetype file.ext
returns the mimetype of a file,
$ mimetype -d file.extension
returns a description of that mimetype.
When xdg-open fails to detect one of the desktop environments it knows about, it normally falls back to using
file -i, which uses only file contents to determine the mimetype, resulting in some file types not being detected correctly. With mimetype available, xdg-open will use that instead, with better detection results, as mimetype uses the information in the shared mime info database.
Some environment variables, such as
DESKTOP_SESSION, will change the behaviour of the default xdg-open. See Environment variables for more information.