修复

修复

我尝试通过创建包含以下内容的文件 ~/.local/share/mime/packages/graphml+xml-mime.xml 来创建自定义 mimetype (text/graphml+xml):

<?xml version="1.0" encoding="UTF-8"?>
 <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
   <mime-type type="text/x-graphml+xml">
   <comment>GraphML file</comment>
   <acronym>GraphML</acronym>
   <expanded-acronym>Graph Modelling Language</expanded-acronym>
   <sub-class-of type="text/xml"/>
   <glob pattern="*.graphml"/>
  </mime-type>
 </mime-info>

并安装了一个适当的图标:

xdg-icon-resource-resourse install --context mimetype --novendor --size ${size} --mode user text-x-graphml+xml.png

然后更新数据库

update-mime-database ~/.local/share/mime

但是 my.graphml 文件的图标不会显示在 nautilus 中(它是一个 debian 最小 gnome 系统)。

~/.local/share/icon/hicolor/${size}x${size}/mimetype/text-x-graphml+xml.png 中的图标确实存在。

gio 信息 my.graphml 说:

...
standard::icon: text-x-graphml+xml, text-x-generic, text-x-graphml+xml-symbolic, text-x-generic-symbolic
standard::content-type: text/x-graphml+xml
standard::fast-content-type: text/x-graphml+xml
...

我可以双击它,然后使用 yed 打开该文件(如我所愿 - 确实创建了 ~/.local/share/applicatons/yed.desktop 文件)

但没有图标! :-(

答案1

修复

请改用此 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
 <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
   <mime-type type="application/x-graphml+xml">
   <comment>GraphML file</comment>
   <acronym>GraphML</acronym>
   <expanded-acronym>Graph Modelling Language</expanded-acronym>
   <glob pattern="*.graphml"/>
   <icon name="x-graphml+xml"/>
  </mime-type>
 </mime-info>

并确保你xdg-icon-resource 运行

--context mimetypes

不是

--context mimetype

否则它们会进入错误的文件夹。

例如,如果图标为 48x48,则安装命令将如下所示:

xdg-mime install --mode user graphml+xml-mime.xml
xdg-icon-resource install --context mimetypes --size 48 text-x-graphml+xml.png x-graphml+xml
update-mime-database ~/.local/share/mime
update-icon-caches ~/.local/share/icons

尝试解释

这是一个奇怪的现象。看起来困难在于当 mimetype 是

text/x-graphml+xml

代替

application/x-graphml+xml

它默认为通用文本图标。不过,这似乎取决于文件管理器和桌面。

这是一个错误吗?你决定!

相关内容