我有一个 .deb 包,它在以下位置安装应用程序图标:
/usr/share/icons/hicolor/16x16/apps/
/usr/share/icons/hicolor/48x48/apps/
/usr/share/icons/hicolor/32x32/apps/
/usr/share/pixmaps/
我安装了 .deb 包并将已安装的图标替换为新图标(在磁盘上)后,旧图标仍然显示在 Unity 中。Unity 为应用程序使用了什么图标?
答案1
图标缓存在一个非常大的文件中:
GTK+ 可以使用 gtk-update-icon-cache 创建的缓存文件,以避免应用程序启动时产生大量系统调用和磁盘寻道开销。由于缓存文件的格式允许它们在多个应用程序之间通过 mmap() 共享,因此总体内存消耗也会减少。
每个主题都应在安装时创建一个缓存文件。
/usr/share/icons/[theme]/icon-theme.cache
例如 - 如果您删除/重命名 gnome 图标缓存文件:
sudo mv /usr/share/icons/gnome/icon-theme.cache /usr/share/icons/gnome/icon-theme.cache.backup
然后您可以重新生成缓存:
sudo gtk-update-icon-cache --force /usr/share/icons/gnome
就你的情况而言,你已将应用程序图标添加到彩色- 因此您应该强制重新生成此缓存文件以拾取新的图标:
sudo gtk-update-icon-cache --force /usr/share/icons/hicolor
答案2
当我第一次问这个问题时,我不知道 Dash 中使用的图标与 Launcher Item 中使用的图标不同。我以为 Unity 只使用图标,/usr/share/icons/hicolor/*/apps/
或者/usr/share/pixmaps/
因为我在那里安装了所有图标,但我错了。
当您打开 Dash 启动应用程序时,Ubuntu 会使用问题中提到的图标之一,但当应用程序显示在启动器中(作为启动器项)时,其图标就是应用程序的图标。就我而言,我正在运行 Java 应用程序,因此它是我使用 JFrame#setIconImage(Image) 设置的图标。
我之前使用的是 16x16 像素的图标,它在启动器中看起来很模糊。现在,我使用 64x64 像素的图标,看起来好多了。
答案3
对于大多数用途,图标是 Icon= 行中应用程序 .desktop 指定的图标。通常,这些 .desktop 位于 /usr/share/applications 中,可以在文本编辑器中打开(虽然通常不能从上下文菜单中打开),或者检查其属性以找到需要的补救方法。编辑器是最好的。
如果指的是在其他地方设置的系统托盘图标,则可能是“二进制”。