![桌面忘记主题了?](https://linux22.com/image/956968/%E6%A1%8C%E9%9D%A2%E5%BF%98%E8%AE%B0%E4%B8%BB%E9%A2%98%E4%BA%86%EF%BC%9F.png)
我在 VirtualBox 中运行 Ubuntu(在 Windows 7 主机上)。现在有好几次,顶级菜单栏、任务栏(以及似乎每个系统对话框)都忘记了它们在我第一次安装系统时遵循的开箱即用的“氛围”主题。窗口标题仍然保留主题,但其他内容几乎没有保留主题。
我在 Google 上搜索了各种方法,希望能够帮助解决此问题。我找到的所有方法都建议运行 gconf 重置或删除 .gconf* .gnome* 和其他类似目录。我遵循了所有这些建议,但都无济于事。我仍然得到一种无聊的 Windows-95 风格的灰色 3D 外观和感觉。以前,经过多次折腾后,我放弃了,并重新启动了 VM 实例,并惊喜地发现整个 UI 中都恢复了原始的“Ambience”主题,但它总会在一段时间后再次消失,通常是在重新启动后,所以我永远也搞不清楚我做了什么破坏了它。
这是来自 Ubuntu 站点的一个示例,是我希望它看起来的样子。
这是我的系统的当前屏幕截图。
还要注意,我的 GNOME 终端通常具有漂亮的紫色半透明外观,从屏幕截图中可以看出,它们现在只是纯哑光白色。
最后一次(就在昨天),尝试了多种组合,所有常用的技巧,并多次重新启动都没有解决问题,所以我在 SU 上想知道:
我该如何恢复 Gnome/Ubuntu 桌面的开箱即用主题,请注意,删除所有配置文件(如网上很多地方所建议的那样)无法实现这一点?
了解以下情况可能会有所帮助:在我调整虚拟机实例的大小、强制 Ubuntu 桌面自行调整大小或调整 Compiz 设置后,它似乎会失败。我无法弄清楚是哪一种原因,也可能两者都不是。考虑到我为让一切恢复正常所经历的痛苦(以及考虑到我不知道如何恢复正常),事实证明很难明确找出原因。
答案1
@zpletan 的回答我开始四处寻找,很快就发现了问题的根源。Ubuntu 中有详细介绍错误 #574296。总之,我的带有 SSD 的 Core i7 系统启动所有程序的时间完全不同,以至于 gnome-settings-daemon 运行得太早,失败了,并且主要给我留下一个原始 GTK 主题。
短暂睡眠可以/etc/xdg/autostart/gnome-settings-daemon.desktop
解决这个问题:
Exec= bash -c "sleep 2; /usr/lib/gnome-settings-daemon/gnome-settings-daemon"
答案2
我无法用任何建议的答案来解决这个问题(目前接受的答案偶尔有效,但通常对我不起作用)。我尝试大量增加睡眠时间,但仍然无法持续工作。
然而,其中一个答案确实指出了跟踪此问题的一个错误,我发现了一个对错误进行评论这帮我解决了这个问题。
以下是关键内容:
首先,创建一个 bash 脚本(我将其命名为/etc/xdg/autostart/gnomesettingsdaemonfix.sh
)
#!/bin/bash
pid=$(pgrep gnome-settings-)
while [ -n "$pid" ];
do
pid=$(pgrep gnome-settings-)
sleep 0
done
exit 0
确保它是可执行的(运行chmod +x
)。
然后编辑/etc/xdg/autostart/gnome-settings-daemon.desktop
将该Exec
行更改为:
Exec=bash -c '/etc/xdg/autostart/gnomesettingsdaemonfix.sh;/usr/lib/gnome-settings-daemon/gnome-settings-daemon'
到目前为止,这似乎已经为我解决了问题。
答案3
按 Alt+F2(运行应用程序)并运行以下命令:
gksudo gnome-settings-daemon
答案4
几个月来我一直在寻找这个问题的解决办法。显然没人知道是什么原因造成的。这个错误已经存在好几年了,但没人修复过它。
有时它会在启动期间发生,并且 gnome-settings-daemon 的第一个和第二个实例之间存在竞争条件,有时它会在工作桌面会话中间发生,此时 gnome-settings-daemon 停止运行或崩溃。
我发现唯一能解决这个问题的方法是输入
killall gnome-settings-daemon
gnome-settings-daemon &
在我打开的正在运行的终端中。
关闭终端会终止 gnome-settings-daemon 的后台实例,桌面会恢复为默认主题(不是 Ubuntu 默认,而是 gnome 默认)。因此,我在后台运行守护进程,并让终端也运行,因为该进程需要其父进程。