重新加载 Gtk+ 3.0 主题

我正在尝试自定义我的Gtk+3.0主题,在我对主题进行更改时,我会在两个主题之间切换(使用MyUnity),以强制应用程序重新加载主题并测试我的主题。 但是当我这样做时,主题没有刷新以展示我的更改,仍然是旧版本的样子,显然Gtk+在某个地方缓存了主题信息。
关闭并重新打开会话后,我可以看到我的主题更改,但是每次做出更改都要这样做非常烦人。
是否有一种方法可以刷新我的主题并查看我的更改(例如一个命令行程序或者一个Gtk+的API调用)?

谢谢,杀死并重新启动一个Gtk+应用程序确实有效。 - eagleoneraptor
2个回答

你可以使用这个bash函数在不重新加载shell的情况下重新加载主题,你可以将它添加到你的~/.bashrc文件中。
function reload_gtk_theme() {
  theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  gsettings set org.gnome.desktop.interface gtk-theme ''
  sleep 1
  gsettings set org.gnome.desktop.interface gtk-theme $theme
}

使用它,运行:
$ reload_gtk_theme

这是相当简单而有效的方法:
  1. 编辑您的主题时打开一个Nautilus窗口
  2. 使用killall命令关闭Nautilus,然后从终端打开Nautilus
  3. 对主题进行修改后再次关闭Nautilus,然后重新启动它
您可以在不进行任何复杂操作的情况下看到您所做的改变。大多数您对主题进行的更改都会反映在Nautilus中。

nautilus -q(退出nautilus)似乎有效。 - yurenchen