Difference between revisions of "Xdg-open"

From ArchWiki
Jump to: navigation, search
(xdg-open replacements)
(mimetype: Add information on its function as an 'xdg-open' enhancement when no DE detected)
Line 83: Line 83:
=== mimetype  ===
=== mimetype  ===
''mimetype'' in {{Pkg|perl-file-mimeinfo}} package can display some mimetype-related information about a file.
''mimetype'' in {{Pkg|perl-file-mimeinfo}} package can display some mimetype-related information about a file. ''mimetype'' uses ''shared-mime-info'' for information about mimetypes. When installed, ''xdg-open'' will use ''mimetype'' to determine mimetype information instead of falling back on ''file -i'' when it cannot detect a known Desktop Environment.
For example:
For example:

Revision as of 05:19, 23 February 2014

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.


xdg-open is part of the xdg-utils package available in the official repositories. xdg-open is for use inside a desktop session only. It is not recommended to use xdg-open as root.


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 photo.jpg:

$ 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 use xpdfAUR 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. firefox.desktop or chromium.desktop):

$ 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

xdg-open replacements

Name/Package Description Based on Configuration file
busking-gitAUR A simple, regex-based xdg-open replacement. perl-file-mimeinfo custom
exproAUR Opens objects in associated applications by matching regular expressions against object name or MIME-type. file (but alternatives can be configured) custom
linopenAUR An intelligent and suckless replacement for xdg-open. file custom
mimeoAUR Open files by MIME-type or file name using regular expressions. It can be used on its own or through xdg-utils-mimeoAUR. file standard mimeapps.list or defaults.list; custom is optional
mimi-gitAUR A working replacement for xdg-open. file custom
fyrAUR Manages menus of application launchers, either executables or desktop files. Also opens files and URIs with launchers, desktop files, or applications associated by MIME-type. Can use a wrapper script to replace xdg-open. file and/or perl-file-mimeinfo; other alternatives and fallbacks can be configured XDG standard mimeapps.list and mimeinfo.cache (and the older defaults.list) to determine associations


The .mailcap file format used by the mutt mail program is way easier to read and write. The run-mailcapAUR package from the AUR provides a executable that could be easily symlinked to /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:

run-mailcap $1 || mimeo $1

Then use the defaults.list at ~/.local/share/applications/ to associate URLs and folders with applications and the .mailcap file for normal mimetypes.


mimetype in perl-file-mimeinfo package can display some mimetype-related information about a file. mimetype uses shared-mime-info for information about mimetypes. When installed, xdg-open will use mimetype to determine mimetype information instead of falling back on file -i when it cannot detect a known Desktop Environment.

For example:

$ mimetype file.ext

returns the mimetype of a file,

$ mimetype -d file.extension

returns a description of that mimetype.

Environment variables

Some environment variables, such as BROWSER, DE, and DESKTOP_SESSION, will change the behaviour of the default xdg-open. See Environment Variables for more information.

See also