我正在运行带有 Gnome 3.10 的 Ubuntu Gnome 13.10。我的问题是每次重新启动操作系统时,所有 shell 扩展都会被关闭。奇怪的是它们的设置被保留了下来。它们只是被关闭了,每次我都必须重新启用它们。我怎样才能让它们持久存在。
谢谢
更新
今天Ubuntu 13.10正式发布,升级后问题仍然存在。以下是我的系统信息:
$ uname -a
Linux ubuntu-desktop 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
有任何想法吗?
边注- 有人能告诉我扩展状态(开/关)的设置存储在哪里吗?我已经删除了所有扩展
rm -r ~/.local/share/gnome-shell/extensions/*
rm -r /usr/share/gnome-shell/extensions/*
并且我安装了我使用的那些。所以我正在考虑创建一个 cronjob 并在每次系统启动时启用它们。至少在我找到如何修复这个问题之前。
答案1
这在 Gnome 3.8.4 中有效,并且应该可以在更高版本中有效。
设置您想要启用的所有扩展。然后运行:
gsettings get org.gnome.shell enabled-extensions
这应该得出类似
$ gsettings get org.gnome.shell enabled-extensions
['[email protected]', '[email protected]', '[email protected]']
复制输出,然后运行gnome-session-properties
按添加,然后输入输出gsettings get org.gnome.shell enabled-extensions "['use... ...blogspot.com']"
- 但是,正如有人指出的那样,在命令框中输入时更改为get
,set
如下图所示。输入双引号,否则这将不起作用(如果不确定,请先在终端中测试命令 - 如果没有给出反馈,则表示它有效)。
编辑:对于没有的新版本gnome-session-properties
,您可能需要手动进行。桌面文件~/.config/autostart
- 一些 GUI 工具可能通过 Gnome Tweak Tool 或类似工具提供。
例如:
然后确保此功能已打开:
现在,每次您登录时,它都应该运行一个命令来恢复所有扩展!
注意:如果您对已激活的扩展程序进行更改,则需要进行更新。
为了自动化这个过程,这个脚本似乎有效:
#!/bin/bash
active_extensions=$(gsettings get org.gnome.shell enabled-extensions)
autostart_file=$HOME/.config/autostart/restore-extensions.desktop
echo -e "Currently active extensions:\n\e[34m$active_extensions\e[0m"
echo -e "[Desktop Entry]\nType=Application" > $autostart_file
echo Exec=gsettings set org.gnome.shell enabled-extensions \"$active_extensions\" >> $autostart_file
echo -e "Hidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\nName=Restore Extensions\nComment=Restore enabled extensions on login" >> $autostart_file
echo "Command to restore currently active extensions added to $HOME/.config/autostart/restore-extensions.desktop"
exit
将脚本保存到~/.local/bin/extension-update
,使其可执行(在文件的属性窗口中设置它,或者运行chmod +x ~/.local/bin/extension-update
)。
然后每次运行时extension-update
,它都会更新自动启动文件~/.config/autostart/restore-extensions.desktop
(如果您按照上述方式手动创建了自动启动条目,则它可能会有所不同,因此如果您手动创建了自动启动条目,则可能需要删除它)- 您可以办理登机手续gnome-session-properties
以确保无误。
答案2
编辑:在登录屏幕中选择“系统默认”而不是“gnome”似乎对我有用
这是已知的错误: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1236749
似乎与 TopIcons 扩展相关,请尝试暂时禁用它:https://extensions.gnome.org/extension/495/topicons/
答案3
在登录菜单上,将选项设置为“系统默认”而不是“gnome 或 classic”,扩展现在应该在重启后保持启用状态。对我有用!
答案4
我通过删除已启用扩展的 dconf 键、重新启动 shell 或注销,然后在调整工具中重新激活扩展,解决了该问题(在 openSUSE 中,但对您来说可能也是一样的)。
dconf 中的某些扩展实际上并未安装......这似乎是问题所在,因为它现在可以正常工作了......
希望有所帮助。