如果 .fon 和 .exe 文件具有相同的 MIME 类型,我该如何为 .fon 和 .exe 文件设置不同的文件关联?

如果 .fon 和 .exe 文件具有相同的 MIME 类型,我该如何为 .fon 和 .exe 文件设置不同的文件关联?

我有时需要使用.fon位图字体文件。

当我尝试为它们设置默认应用程序(使用 GUI)时,它也会更改.exe文件的应用程序,反之亦然。但我试图将两个不同的应用程序与它们关联起来(字体编辑器.fon和 Wine .exe)。

两者的 MIME 类型似乎都是application/x-ms-dos-executable

file将这些.fon文件标识为MS-DOS executable, NE for MS Windows 3.x (DLL or font)。“NE 可执行文件”似乎是一种过时的格式,因此考虑任何 NE 可执行文件字体(而不是 PE)将是一个合理的权衡,但我不确定如何做到这一点。

答案1

您需要将.fon文件的新的 MIME 类型注册到 MIME 数据库中:

  • 首先,创建一个XML 文件/usr/share/mime/packages

    sudo nano /usr/share/mime/packages/ms-fon.xml
    
  • 将这些行复制到文件中(使用Ctrl+C复制,使用++Ctrl粘贴到窗口中):ShiftVnano

    <?xml version="1.0" encoding="UTF-8"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
       <mime-type type="application/x-ms-fon">
         <comment>Windows FON file</comment>
         <generic-icon name="font-x-generic"/>
         <glob pattern="*.fon"/>
       </mime-type>
    </mime-info>
    
  • Ctrl+OEnter保存文件,按Ctrl+X退出nano并返回终端。

  • 最后,更新 MIME 数据库:

    sudo update-mime-database /usr/share/mime
    

现在,文件的 MIME 类型.fon将为,application/x-ms-fon.exe文件的 MIME 类型保持不变。现在您应该能够将不同的应用程序与这些类型关联起来。

参考https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#mime-types

答案2

另一种方法是创建一个 .desktop 文件,其模板如下。本回答将重点介绍如何为“.exe”创建默认 mime:

[Desktop Entry]
Type=Application
Name=My Program
Exec=/path/to/myprogram %f
MimeType=application/x-ms-dos-executable;more_mimetypes_here_if_you_want

使用 xdg-tools 中的 xdg-mime,它实现官方标准如下:

xdg-mime default mydesktopfile.desktop application/x-ms-dos-executable

相关内容