default mime type program is inconsistent between system and the mozilla firefox/thunderbird?
In kubuntu ,the default programs associated with mime types in mozilla products are completely different from the system-wide setting or user setting. For example, firefox/thunderbird will always use krita to open pdf, but for all other programs such as dolphin will open it correctly via okular
It seems consistent with the /usr/share/applications/mimeinfo.cache
:
application/pdf=kde4-krita_pdf.desktop;kde4-okularApplication_pdf.desktop;gimp.desktop
However, the xdg-mime query default application/pdf
gives out a correct value:
okularApplication_pdf.desktop
And in dolphin->"file type options", it gives a correct priority list: Okular, Gimp, Imagemagick, krita
Is there anyway to make firefox/thunderbird use the correct xdg-mime value instead of the wrong mimeinfo.cache?
Or is there any way I can just copy the correct data into mimeinfo.cache?
Thanks
Finally I figured it out: The Mozilla applications are going to look through list of files for mime-type-app associations in following order:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/mimeinfo.cache
/usr/local/share/applications/mimeapps.list
/usr/local/share/applications/mimeinfo.cache
/usr/share/applications/mimeapps.list
/usr/share/applications/mimeinfo.cache
/usr/share/applications/defaults.list
Actually they should not use mimeinfo.cache
at all. Because there is no order in these files. In some distro there will be default mimeapps.list
which is nice. But many distros does not have default mimeapps.list
. In some distro there is no mimeinfo.cache
at all. Thus in these distros it falls back to /usr/share/applications/defaults.list
which works fine. But in ubuntu, there are still mimeinfo.cache
s, which will be automatically generated after each updates. In kubuntu it is even worse, because the associations in defaults.list
are specified to gnome apps but not KDE ones.
The good way to solve this is to generate my own mimeapps.list
and put it into ~/.local/share/applications/
.