Comment 3 for bug 220765

Revision history for this message
In , Lei Zhang (thestig-google) wrote :

Upstreaming https://bugs.launchpad.net/ubuntu/+source/xdg-utils/+bug/220765

Original report:
----
When no desktop environment is detected, xdg-open falls back to a generic mechanism based on run-mailcap. This is rather limited as it depends on file extensions. It would seem better to use file or probably xdg-mime to choose how to open the file.

The mime type could be fetched with:

file --mime "$1"

and extracted from the output and prepended to the filename before passing to run-mailcap.

However, it looks to me like a better option would be to use xdg-mime, since xdg-mime query default "$1" will give you the default application to open the file.
----

IMO, xdg-mime does a better job of figuring out what program to open a given file with. xdg-mime also uses defaults.list, which might be part of a fd.o spec? OTOH, run-mailcap is a Debian-ism that doesn't exist on all distros. Thus in open_generic(), we should try to use xdg-mime first before falling back to run-mailcap.