问题描述
我正在尝试更改application/x-hwp
文件的图标。我已将图标添加到适当的位置,并使用assoGiate进行检查(阅读this thread后)。它显示我想要的图标与文件类型相关联。尽管如此,Nautilus仍然显示旧图标。如何让Nautilus显示正确的图标?
最佳解决办法
这是一组指令,可以为您提供hwp文件的自定义图标。
打开终端:
-
检查MIME类型是否存在:
grep 'hwp' /etc/mime.types
如果得到类似于application/x-hwp hwp
的输出,请跳过下一步。 -
创建MIME类型
sudo -H gedit /etc/mime.types
并添加行application/x-hwp hwp
-
添加图标(必须称为
application-x-hwp.svg
):sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
(别忘了替换PathToIcon)
从here获取信息
次佳解决办法
主要技巧是找出实际图标所在的位置。为了确定让我们分析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/
如果我们用Nautilus访问它们,我们会看到,Humanity/
文件夹包含我们当前的图标,gnome/
– 一些较旧的图标。 HighContrast/
对我们不感兴趣。因此,为了更改某些图标,我们应该替换位于Humanity/
文件夹中的图标。另请注意,可扩展且应放入scalable
子文件夹(应该是逻辑的)的text-html.svg
图标将放置到不同大小的文件夹中,与栅格PNG文件的方式相同。
在用所需的图标替换图标(在所有子文件夹中根据其大小)之后,应更新图标缓存:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
而已。
还有另一种方法可以确定图标方案的优先级 – 检查它们的index.theme
文件。如果我们查看/usr/share/icons/Humanity/index.theme
,我们会看到:
Inherits=gnome,hicolor
这意味着gnome
和hicolor
文件夹中的图标优先级低于Humanity
中的图标。这是解释here。奇怪的是,Nautilus不遵守这些继承规则。当我添加新的MIME-type时,我尝试将其图标放入/usr/share/icons/gnome/
,/usr/share/icons/hicolor
,~/.local/share/icons/hicolor
,每一步更新图标数据库 – 都是徒劳的。这些图标在第一个选项卡上的assogiate
中正确显示,但从未在Nautilus中显示。但当我将它们放入Humanity
文件夹并更新图标数据库时,它们立即出现了。
注:所有这些都适用于默认图标主题。如果您使用某些自定义图标主题,则应检查实际图标的位置,并在其中添加/更改图标。同样在较新的发行版中,这些继承规则可能会发生变化。然后你应该找到存储实际图标的新文件夹(如果它不再是Humanity
),如前所述。