如何刷新图标缓存?

如何刷新图标缓存?

首先,我并不 100% 肯定我在这里写的主要问题实际上是问题所在,但我有预感它就是问题所在。不久前,我在 Mono 中编写了一个简单的 Gtk# 应用程序,并为其提供了一个自定义 ICO 作为其图标文件。效果很好。

最近我打算把这个图标换成另一个,但当我构建并运行程序时,它仍然显示这个图标。我已确保将对图标文件的所有引用都更新为新文件,并已将旧图标从硬盘上完全删除。但当我运行程序时,它仍然显示在启动器中。

我假设这意味着 Gtk 将图标缓存在 Ubuntu 的某个地方,我可能需要强制刷新它。有什么建议吗?

答案1

在终端中运行以下命令:

sudo update-icon-caches /usr/share/icons/*

手册页

update-icon-caches是一个用于更新目录列表中的图标缓存的包装脚本。

在每个作为参数传递的目录中,如果图标缓存已存在,则更新图标缓存。如果图标缓存不存在,则不会创建图标缓存。

如果主题索引文件不存在,则会删除图标缓存。

答案2

你需要:

笔记: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

Unix 操作系统:请参阅XDG 桌面菜单规范。要更新应用程序菜单中可用的桌面启动器列表,请运行:

xdg-desktop-menu forceupdate

更新将在几秒钟内反映出来。

答案4

如果使用 Unity(直到 Ubuntu 17.04):在终端命令提示符下输入:

$ unity

这将更新启动器中的 *.desktop 图标。

如果问题不是出在 Ubuntu Launcher 上,而是应用程序本身,请查看stackoverflow.com用于编程决议。

类似问题已在这里. 另请查看这里

相关内容