Eu dei uma olhada na xdg-open
source e vi que ela usa xdg-mime
para descobrir o tipo. man xdg-mime
revelou uma opção default
para definir o aplicativo a ser usado:
xdg-mime default application mimetype(s)
...
default
Ask the desktop environment to make application the default
application for opening files of type mimetype. An application can
be made the default for several file types by specifying multiple
mimetypes.
application is the desktop file id of the application and has the
form vendor-name.desktop application must already be installed in
the desktop menu before it can be made the default handler. The
aplication's desktop file must list support for all the MIME types
that it wishes to be the default handler for.
Para saber mais sobre isso, consulte as páginas do manual relevantes.