我使用的系统是 Xubuntu 22.04 LTS。
现在,文件资源管理器 Thunar 确实包含一个选项,您可以右键单击文件并选择(默认)应用程序来打开文件类型。
问题是它并不完全按照确切的文件扩展名(.c 或 .py)执行此操作。它根据文件内容的编码执行此操作(我认为)。
我的意思是什么?
- 例如,Buttercup(离线密码管理器)将其保管库简单地存储为加密的文本文件。内容是加密的,如果您在文本编辑器中打开它,您会看到乱码文本,但它本质上是一个带有 .bcup 扩展名的文本文件。
- 之前,我已将带有 .bcup 扩展名的文件的整个“打开方式(默认应用程序)”设置为 Buttercup 应用程序。
- 接下来,我将扩展名为 .py 的文本文件(Python 源代码)的“打开方式(默认应用程序)”设置为 Sublime Text。
- 瞧,下次我双击 .bcup 文件时,操作系统不再在 Buttercup 中打开它,而是在 Sublime Text 中打开它。
我该如何避免这种现象?如何让操作系统将“打开方式”应用程序与确切的文件扩展名而不是文件内容格式关联起来?
谢谢。
答案1
Thunar mime 类型可以通过 XML 文件来定义,该文件通过 glob 模式定义文件扩展名。
在文中 Thunar 中的文件类型和扩展名在评论#4中,用户 daggoth 说道:
Secipolla 提供了上述正确信息的重要链接。但除此之外,我们还可以继续创建新的 mimetype。因此,首先,以 root 身份打开终端,并在 /usr/share/mime/packages 文件夹中创建一个新文件 kicad.xml。文件名不必是 kicad.xml,也可以是任何独特的名称,例如 blah.xml。再次说明,我使用的是 geany,但您可以使用自己喜欢的文本编辑器...
cd /usr/share/mime/packages geany kicad.xml
然后将该新文件中的以下基本 mimetype 定义剪切并粘贴...
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-kicad-module"> <comment>Kicad Module File</comment> <glob weight="60" pattern="*.mod"/> <icon name="application-x-kicad-module"/> </mime-type> </mime-info>
基本上,/usr/share/mime/packages 中的 xml 文件包含系统的 mimetype 定义。在这里我们添加了一个新的 mimetype“application/x-kicad-module”。这些文件将使用通用图标“application-x-kicad-module”(如果存在)。但我在这里使用的 mimetype 和图标名称纯粹是猜测,因此请用更合适的选择替换。
但是,*.mod 文件已经有了标准 mimetype - 如上所述的音频文件类型。因此,我在 xml 中添加了“weight=60”项,以便将新 mimetype 的优先级设为 60,高于默认值 50。这样可以确保新 mimetype 优先于现有 mimetype。
好的。保存文件并退出文本编辑器。现在我们需要重建 mimetype 数据库。
cd /usr/share/mime update-mime-database $PWD
这样就应该可以了。请重新启动系统,然后查看 Thunar 是否检测到新的 mimetype。