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

Share on:

Overview

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

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

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

手动关联步骤

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

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

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

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

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

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

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

    创建程序.desktop , 内容:

     1[Desktop Entry]
     2Version=1.0
     3Type=Application
     4Name=显示的程序名
     5Icon="/path-to/图标文件"
     6Exec="/path-to/执行程序" %f
     7Path="/path-to/" (可选)
     8NoDisplay=false (true则不会在系统菜单中出现)
     9Categories=Utility;
    10StartupNotify=false
    11Terminal=false
    

    其关键在于Exec=行中的%f将文件路径传递给执行程序。
    Exec=也可以没有绝对路径直接使用命令,Icon=也可以不用路径而直接写系统认可的图标名称。
    程序.desktop 文件到 ~/.local/share/applications/

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

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

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

参考

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

本博客文章皆属原创(除特别标明外)。 未联系作者获得同意前,不可转载。
All articles are original (except for those specially claimed) and copyrighted. Copying without permission is forbidden.

打赏作者

写作不易,感谢支持! 扫个码吧~