Linux关联文件扩展名和打开程序

时间:2021-07-30 05:16:32

Linux关联文件扩展名和打开程序

手动为Linux关联文件扩展名与打开程序。

当Linux不认识某种扩展名的时候,需要为此扩展名创建一个MIME类型。Linux是依据MIME类型而不是扩展名来决定打开程序的。

再将此种MIME类型与某程序菜单项关联。

手动关联步骤

  1. 为扩展名建造一个MIME类型

    如果你的Linux已经认得这种扩展名,不需要做这一步。在你的文件管理器中,看看这种扩展名的文件有没有被正确识别。或使用file命令查看。

    创建 application-x-扩展名.xml 内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-扩展名">
    <comment>此种文件类型的描述</comment>
    <icon name="application-x-扩展名"/>
    <glob-deleteall/>
    <glob pattern="*.扩展名"/>
    </mime-type>
    </mime-info>

    application-x-扩展名.xml~/.local/share/mime/packages/
    刷新系统MIME数据库

    $ update-mime-database ~/.local/share/mime
  2. 为程序建造一个菜单项

    如果此程序已经有菜单项,略过这一步。

    创建程序.desktop , 内容:

    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=显示的程序名
    Icon="/path-to/图标文件"
    Exec="/path-to/执行程序" %f
    Path="/path-to/"
    NoDisplay=false
    Categories=Utility;
    StartupNotify=false
    Terminal=false

    其关键在于Exec行中的%f将文件路径传递给执行程序。
    程序.desktop 文件到 ~/.local/share/applications/

  3. 设置用某程序打开MIME类型文件
    修改 ~/.config/mimeapps.list~/.local/share/applications/mimeapps.list(废弃)

    [Added Associations]
    application/x-扩展名=程序.desktop;其他程序.desktop

    其中application/x-扩展名是你刚刚所创建的MIME类型。如果MIME类型是原有的不是刚刚创建的,替换为原有的MIME类型名称。

参考

https://wiki.archlinux.org/index.php/Default_applications#MIME_database