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.
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.