主要的技巧是准确找出图标的实际位置。
为了确定这一点,让我们分析HTML图标。图标的命名约定与MIME类型相同,只是将
/
替换为
-
,并且不允许使用大写字母。例如,MIME类型
text/x-changelog
的图标将被命名为
text-x-changelog.svg
(或
png
)。HTML的MIME类型是
text/html
。因此,它的图标将是
text-html.*
如果我们运行该命令。
find /usr/share/icons/ -type f | grep 'text-html\.'
我们会找到几个放置这些图标的地方:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
如果我们使用鹦鹉螺浏览器逐个访问它们,我们会发现
Humanity/
文件夹包含我们当前的图标,
gnome/
则包含一些较旧的图标。
HighContrast/
对我们来说不感兴趣。因此,要更改某个图标,我们应该替换位于
Humanity/
文件夹中的图标。
还要注意,可缩放的
text-html.svg
图标应该被放置在
scalable
子文件夹中(这是合乎逻辑的),但实际上它们被放置在不同尺寸的文件夹中,就像光栅PNG文件一样。
在用所需的图标替换所有子文件夹中的图标之后,应更新图标缓存。
sudo gtk-update-icon-cache /usr/share/icons/Humanity
那就是这样。还有另一种确定图标方案优先级的方法-检查它们的
index.theme
文件。如果我们打开
/usr/share/icons/Humanity/index.theme
,我们会看到:
Inherits=gnome,hicolor
这意味着来自“gnome”和“hicolor”文件夹的图标优先级较低,而来自“Humanity”文件夹的图标优先级较高。这在
这里有解释。
奇怪的是,Nautilus不遵守这些继承规则。当我添加新的MIME类型时,我尝试将其图标放入“/usr/share/icons/gnome/”,“/usr/share/icons/hicolor”,“~/.local/share/icons/hicolor”中,并在每个步骤中更新图标数据库,但都徒劳无功。这些图标在第一个选项卡上在“assogiate”中正确显示,但在Nautilus中从未显示过。但是当我将它们放入“Humanity”文件夹并更新图标数据库时,它们立即出现。
注意:所有这些都适用于默认的图标主题。如果您使用自定义图标主题,请检查实际图标的位置,并在那里添加/更改图标。在较新的发行版中,这些继承规则可能会更改。然后,您应该按照之前的说明找到存储实际图标的新文件夹(如果不再是“Humanity”)。