我无法将自定义图标添加到自定义 MIME 类型文件中。我不知道我做错了什么,我在这里和其他网站上遵循了一些教程。
首先我创建了一个名为 .xml 的 xmlorg.xml
文件/usr/share/mime/packages
。我的文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/org">
<comment>Emacs Org-mode File</comment>
<comment xml:lang="fr">Fichier Emacs Org-mode</comment>
<glob pattern="*.org"/>
<icon name="org-icon"/>
<alias type="text/org"/>
</mime-type>
</mime-info>
然后我使用以下命令更新了 MIME 数据库:
sudo update-mime-database /usr/share/mime
MIME 类型关联正在工作,我的 Org 文件被检测为,text/org
但它们仍然具有默认文件图标。
所以我创建了一个512×512的自定义图标并将其命名为org-icon.png
。
sudo xdg-icon-resource install --context mimetypes --size 512 --mode system org-icon.png org-icon
这成功地将图标复制到,/usr/share/icons/hicolor/512x512/mimetypes
尽管图标文件似乎已损坏并且我无法使用图像查看器打开它。我收到错误消息:Failed to open input stream for file
。
之后我尝试执行:
sudo gtk-update-icon-cache --ignore-theme-index /usr/share/icons/
但没有任何改变,它不起作用。我的组织文件仍然具有默认文件图标。
我究竟做错了什么 ?想不通。
答案1
我找到了另一种方法来完成我想要的事情。所以我不会接受这个答案,因为它没有解决我原来的问题,但我会等待另一个答案。
首先,我删除了在 和 中所做的所有更改,/usr/share/mime
并/usr/share/icons/
决定在用户范围而不是系统范围内进行更改。
所以我将org.xml
文件复制到:~/.local/share/mime/packages
然后使用以下命令安装了我的图标:
xdg-icon-resource install --context mimetypes --size 512 --mode user --theme Adwaita org-icon.png org-icon
我使用该--theme
选项将图标安装在正确的主题文件夹中,即我当前正在使用的文件夹(在我的例子中阿德维塔)否则将无法工作。
此外,我的图标不再损坏,我可以在图像查看器中打开它。
最后我更新图标缓存:
gtk-update-icon-cache --ignore-theme-index ~/.local/share/icons/
这样它就可以工作了,我可以看到我的自定义 MIME 类型的自定义图标。