似乎Thunar和Midnight Commander(任何可能的其他工具)都不使用Mailcap来决定如何打开文件。他们用什么代替?
问题背景:在我的系统上,Thunar和Midnight Commander用Okular而不是LibreOffice打开所有ODT文件。
我尝试通过检查~/.mailcap
和/etc/mailcap
进行调试,其中包含ODT的Okular规则,但LibreOffice(soffice
)规则明显优先。
我通过直接在ODT文件上运行mailcap
来验证这一点:
run-mailcap --norun /tmp/example.odt
输出正是我所期望的:
soffice --nologo --writer '/tmp/example.odt'
此外,如果我运行该命令,则确实已启动LibreOffice并打开该文件。
据我了解,MC和Thunar应该使用LibreOffice打开ODT文件。但他们使用Okular。为什么呢?
答案 0 :(得分:1)
要回答我自己的问题,这些应用程序使用xdg-open
代替run-mailcap
。
确实以下命令运行Okular而不是LibreOffice:
命令:
xdg-open /tmp/example.odt
我可以使用以下命令验证分配的MIME类型:
命令:
xdg-mime query filetype /tmp/example.odt
输出:
application/vnd.oasis.opendocument.text
然后,我可以检查哪个应用程序分配给该MIME类型:
命令:
xdg-mime query default application/vnd.oasis.opendocument.text
输出:
kde4-okularApplication_ooo.desktop
这解释了这个问题。当我卸载Okular时,它会导致正确的响应:
输出:
libreoffice-writer.desktop
所以在Okular或LibreOffice包中都出现了问题。