当前位置: 首页>>技术问答>>正文


如何更改特定文件类型的图标?

, , ,

问题描述

我正在尝试更改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

这意味着gnomehicolor文件夹中的图标优先级低于Humanity中的图标。这是解释here。奇怪的是,Nautilus不遵守这些继承规则。当我添加新的MIME-type时,我尝试将其图标放入/usr/share/icons/gnome//usr/share/icons/hicolor~/.local/share/icons/hicolor,每一步更新图标数据库 – 都是徒劳的。这些图标在第一个选项卡上的assogiate中正确显示,但从未在Nautilus中显示。但当我将它们放入Humanity文件夹并更新图标数据库时,它们立即出现了。

注:所有这些都适用于默认图标主题。如果您使用某些自定义图标主题,则应检查实际图标的位置,并在其中添加/更改图标。同样在较新的发行版中,这些继承规则可能会发生变化。然后你应该找到存储实际图标的新文件夹(如果它不再是Humanity),如前所述。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2152.html,未经允许,请勿转载。