Gnome
將圖示分配給自定義 mimetype
我嘗試通過使用以下內容創建文件 ~/.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/applicons/yed.desktop 文件)
但是沒有圖示!:-(
修復
請改用此 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
它預設為通用文本圖示。不過,這似乎取決於文件管理器和桌面。
這是一個錯誤嗎?你決定!