首先,我并不 100% 肯定我在这里写的主要问题实际上是问题所在,但我有预感它就是问题所在。不久前,我在 Mono 中编写了一个简单的 Gtk# 应用程序,并为其提供了一个自定义 ICO 作为其图标文件。效果很好。
最近我打算把这个图标换成另一个,但当我构建并运行程序时,它仍然显示这个图标。我已确保将对图标文件的所有引用都更新为新文件,并已将旧图标从硬盘上完全删除。但当我运行程序时,它仍然显示在启动器中。
我假设这意味着 Gtk 将图标缓存在 Ubuntu 的某个地方,我可能需要强制刷新它。有什么建议吗?
答案1
在终端中运行以下命令:
sudo update-icon-caches /usr/share/icons/*
从手册页:
update-icon-caches
是一个用于更新目录列表中的图标缓存的包装脚本。在每个作为参数传递的目录中,如果图标缓存已存在,则更新图标缓存。如果图标缓存不存在,则不会创建图标缓存。
如果主题索引文件不存在,则会删除图标缓存。
答案2
你需要:
- 更新时间戳在顶层图标目录中
- 跑步
gtk-update-icon-cache
。
笔记:hicolor 是应用程序开发人员应使用的默认主题。如果您正在制作图标主题,请刷新图标主题的文件夹。
sudo touch /usr/share/icons/hicolor ~/.local/share/icons/hicolor
sudo gtk-update-icon-cache
请参阅(我能找到的唯一相关文档):https://fedoraproject.org/wiki/Packaging:Scriptlets#Icon_Cache
答案3
答案4
如果使用 Unity(直到 Ubuntu 17.04):在终端命令提示符下输入:
$ unity
这将更新启动器中的 *.desktop 图标。
如果问题不是出在 Ubuntu Launcher 上,而是应用程序本身,请查看stackoverflow.com用于编程决议。