无法将图标关联到自定义 MIME 类型

无法将图标关联到自定义 MIME 类型

我无法将自定义图标添加到自定义 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 类型的自定义图标。

相关内容