我尝试通过使用以下内容创建文件 ~/.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
但是 nautilus 中不显示 my.graphml 文件的图标(它是一个 debian 最小的 gnome 系统)。
~/.local/share/icon/hicolor/${size}x${size}/mimetype/text-x-graphml+xml.png 中的图标确实存在。
gio info 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/applications/yed.desktop 文件,并且应用程序确实显示在应用程序面板中并带有相应的图标)。
但是没有图标!:-(
编辑:
这是一个 debian 测试系统,使用 debootstrap 安装并从那里扩展(尽量保持最小化)。恐怕这也可能意味着一些包裹可能会丢失......
Nathaniel M. Beaver 是对的 - 这与他在将图标分配给自定义 mimetype - Unix & Linux中已经回答的问题相同