欢迎来到gary的位于博客园的(没太多技术含量的)博客

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 (true则不会在系统菜单中出现)
    Categories=Utility;
    StartupNotify=false
    Terminal=false
    

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

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

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

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

参考

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

posted @ 2017-12-06 20:32  garywill  阅读(944)  评论(0编辑  收藏  举报
gary的位于博客园的博客