xdg-sanity
The xdg-sanity script is built to replace your default web browser in your
desktop/XDG settings. It intercepts http/s URIs sent to the default browser by
xdg-open and sends it to the appropriate application. For example, it will
send image/jpeg MIME type files to your image viewer.
Installation
Arch
I maintain a package on the AUR.
From Source
First, make sure you have curl(1) and handlr(1) installed. Then, clone this
repository and move the xdg-sanity/ folder into /etc and xdg-sanity.sh to
xdg-sanity wherever your operating system stores locally-installed binaries.
This is usually /usr/local/bin. Make sure the installation location is in your
$PATH.
Create a xdg-sanity.desktop file either manually or with gendesk(1),
placing it, also, where your OS stores locally-installed .desktop files,
usually /usr/local/applications. Set your default web browser to that
.desktop file.
Add your default web browser to /etc/xdg-sanity/xdg-sanity.conf so the
script can forward links to it.
Usage
Open links from applications outside your web browser as normal. Alternatively,
you can call xdg-sanity directly with the only argument accepted being a URI.