如何为新文档创建 Mime 类型(命令行)?

use*_*406 5 icons mime-type .desktop

如何为我的应用程序的自定义文档提供自定义图标?此外,当用户双击这些文档时,如何让文件管理器打开它们?

我必须在命令行上执行此操作,因为该解决方案将在安装脚本中使用。

use*_*873 3

正确的解决方案可以在 -->这里<--找到,但foo下面提供了一个版本来直接回答问题。

application-x-foo请密切注意、 、x-foo和的使用,foo因为它们在整个过程中发生变化。

注意:更新 Ubuntu 教程时,最好在示例中区分应用foo程序、foo扩展名和foomimetype,以避免后续混淆。ielmms使用*.mmpzand x-lmms-project,这对解决这个问题有很大帮助。

  • 获取可缩放的 SVG 图标(提供示例)
  • wget http://soqr.fr/testsvg/zebra.svg -O ~/Desktop/application-x-foo.svg
    
    Run Code Online (Sandbox Code Playgroud)

  • 创建 XML 格式的 mime-ingest 文件:
  • <?xml version="1.0" encoding="UTF-8"?>
    <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="application/x-foo">  
    <comment>Foo File</comment>
    <glob pattern="*.foo"/>
    </mime-type>
    </mime-info>
    
    Run Code Online (Sandbox Code Playgroud)

  • 将此保存到~/Desktop/x-foo.xml
  • 如果还没有,请创建一个桌面文件:
  • [Desktop Entry]
    Version=1.0.0
    Encoding=UTF-8
    Name=FooGazi
    GenericName=Foo Application
    Comment=This is my Foo Application
    Exec=/usr/bin/foo
    # Please change, system-shutdown.svg used only as example
    Icon=/usr/share/icons/Humanity/actions/48/system-shutdown.svg
    StartupNotify=true
    Type=Application
    MimeType=application/x-foo;
    
    Run Code Online (Sandbox Code Playgroud)

  • 将此保存到~/Desktop/foo.desktop

  • 部署 mime 描述
  • sudo xdg-mime install --mode system ~/Desktop/x-foo.xml
    
    Run Code Online (Sandbox Code Playgroud)

  • 部署应用程序启动器
  • sudo cp ~/Desktop/foo.desktop /usr/share/applications
    
    Run Code Online (Sandbox Code Playgroud)

  • 部署 SVG 图标
  • sudo cp ~/Desktop/application-x-foo.svg /usr/share/icons/gnome/scalable/mimetypes/
    
    Run Code Online (Sandbox Code Playgroud)

  • 使用注册的 mimetype 注册应用程序启动器
  • sudo xdg-mime default foo.desktop application/x-foo
    
    Run Code Online (Sandbox Code Playgroud)

  • 更新 mime 缓存
  • sudo update-mime-database /usr/share/mime
    
    Run Code Online (Sandbox Code Playgroud)

  • 更新图标缓存
  • sudo gtk-update-icon-cache /usr/share/icons/gnome/ -f
    
    Run Code Online (Sandbox Code Playgroud)

  • 作为一种习惯,我也会添加适当的行/etc/mime.types,但请确认是否仍然需要它并编辑这篇文章以反映这一点。
  • 注销然后重新登录。图标和关联都应该可以工作。

    小智 1

    永远不要通过安装脚本编辑 /etc 中的现有文件!这是一个非常糟糕的主意。除此之外,您不需要编辑 /etc/mime.types

    你的xml文件仍然是错误的,并且在错误的位置,它应该是/usr/share/mime/text/x-foo.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/x-foo">
        <comment>Example file type </comment>
        <glob pattern="*.foo"/>
    </mime-type>
    
    Run Code Online (Sandbox Code Playgroud)

    第 3 方图标通常安装到:/usr/share/icons/hicolor/scalable/mimetypes