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 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.
Then, 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 be that
.desktop file.
Now, add your default web browser to /etc/xdg-sanity/xdg-sanity.conf so the
script can forward links to it.