我正在尝试更改文件的图标application/x-hwp
。我已将图标添加到正确的位置,并使用 assoGiate 进行了检查(阅读后此主题)。它显示我想要的图标与文件类型相关联。然而,Nautilus 仍然显示旧图标。我怎样才能让 Nautilus 显示正确的图标?
答案1
这里有一组说明,可以帮助您获得 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)
信息来自这里
答案2
主要的技巧是正确找出实际图标的位置。
为了确定这一点,让我们分析一下 HTML 图标。图标的命名约定与 MIME 类型相同,只是/
被替换-
,并且不允许使用大写字母。例如,MIME 类型将具有名为(或)text/x-changelog
的图标。HTML 的 MIME 类型是。因此它的图标将是如果我们运行命令text-x-changelog.svg
png
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/
文件夹中的图标。
还请注意,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
),如前所述。
答案3
我希望您尝试注销并登录以刷新图标缓存。
另请查看您的图标是否具有合适的尺寸(您用来在 nautilus 中显示文件类型的图标)。
您或许还错过了跑步gtk-update-icon-cache
。
尝试一下本教程:http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-Type+(mimetype)+Icons+in+Ubuntu/chcrf
尝试手动创建 icon.theme,这是我从 awn 获得的一个示例:
[Icon Theme]
Name=awn-theme
Directories=scalable
[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable