Thunar和MC如何决定如何打开文件?

时间:2017-03-11 08:46:17

标签: mime-types mc thunar

似乎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。为什么呢?

1 个答案:

答案 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包中都出现了问题。