36

I am running Ubuntu Gnome 13.10 with Gnome 3.10. My problem is that every time I reboot the OS all the shell extensions are turned off. The weird thing is that their settings are kept. They are just turned off and I have to re-enable them every time. How can I make them persistent.

Thanks

Update

Today Ubuntu 13.10 was officially released and after I upgraded, my problem is still there. Here is my system info:

$ 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

Any ideas?

Sidenote - Can someone please tell me at least were the settings of the state of the extensions (on/off) are stored? I have removed all the extensions

rm -r ~/.local/share/gnome-shell/extensions/*
rm -r /usr/share/gnome-shell/extensions/*

and I installed the ones I use. So I am thinking of creating a cronjob and enabling all of them everytime the system boots. At least until i find how to fix this.

20

This works in Gnome 3.8.4, and should work later versions.

Set all the extensions you want to be on. Then run:

gsettings get org.gnome.shell enabled-extensions

This should come up with something like

$ gsettings get org.gnome.shell enabled-extensions
['user-theme@gnome-shell-extensions.gcampax.github.com', 'status-area-horizontal-spacing@mathematical.coffee.gmail.com', 'CoverflowAltTab@palatis.blogspot.com']

Copy the output, and then run gnome-session-properties

Press add, and then enter the output of gsettings get org.gnome.shell enabled-extensions "['use... ...blogspot.com']" - However, as has been kindly pointed out, change get to set when entering in the command box, like in the picture below. PUT THE DOUBLE QUOTES IN, OTHERWISE THIS WILL NOT WORK (If not sure, test the command in the terminal first - if no feedback is given, it worked).

EDIT: For newer versions without gnome-session-properties, you need will probably need to manually make a .desktop file in ~/.config/autostart - some GUI tools may be available via Gnome Tweak Tool or similar.

For Example:

Description 1

Then make sure that this is on:

Description 2

Now, every time you login, it should run a command to restore all the extensions!

N.B. If you make changes to your activated extensions, this would need to be updated.


To automate this process, this script seems to work:

#!/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

Save the script to ~/.local/bin/extension-update, make it executable (either set it in the file's Properties window, or run chmod +x ~/.local/bin/extension-update).

Then every time you run extension-update, it will update an autostart file at ~/.config/autostart/restore-extensions.desktop (it will likely be different a different autostart entry if you created one manually as above, so if you created one manually you may want to delete that) - you can check in gnome-session-properties to make sure.

| improve this answer | |
  • Hello, @Qasim, does this solve your problem? – Wilf Oct 29 '13 at 14:59
  • 1
    The right line in wilf answer would be gsettings set org.gnome.shell enabled-extensions "['use... ...blogspot.com']" (changed "get" to "set", enabling the extensions). (Sorry for bad english). – user209242 Oct 29 '13 at 20:05
  • 1
    Thats a great solution! I use it, when gnome crashes and the extensions are all disabled – PythoNic Mar 21 '14 at 19:31
  • 1
    Same script rewritten in Python: gist.github.com/sirex/ddf64bb5697271f8da02 – sirex Dec 14 '15 at 20:12
9

Edit: Selecting 'System Default' instead of 'gnome' in login screen seems to work for me

This is known bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1236749

Seems like related to TopIcons extension, try disabling this for now: https://extensions.gnome.org/extension/495/topicons/

| improve this answer | |
  • I have the same problem that @sijoune has. I have the problem irrespective of whether TopIcons is installed. – Swarnendu Biswas Oct 18 '13 at 21:38
  • I removed the TopIcons and the problem hasn't gone. In my Arch installation though everything works flawlessly... weird. – Christos Baziotis Oct 19 '13 at 9:48
  • I see that if I first login to cinnamon, and then to gnome shell, then the extensions are enabled. – Swarnendu Biswas Oct 20 '13 at 3:43
  • Same i am having the same problem – Qasim Oct 22 '13 at 16:38
  • For those who won't get a desktop environment when selecting the "System Default", try the following on a terminal and reboot: gsettings set org.gnome.desktop.session session-name 'gnome' – amfcosta Sep 4 '14 at 22:52
4

On login menu, set option to "system default" instead of "gnome or classic", extensions should now stay enabled after reboot. Worked for me!

| improve this answer | |
  • 1
    Not working if you decide to enable automatic login after. – Hunsu Apr 28 '14 at 9:25
  • For those who won't get a desktop environment when selecting the "System Default", try the following on a terminal and reboot: gsettings set org.gnome.desktop.session session-name 'gnome' – amfcosta Sep 4 '14 at 22:54
-1

I fixed the problem (in openSUSE, but may be the same for you) by deleting the dconf key for enabled extensions, restarting the shell or logging out, and then re-activating the extensions in tweak tool.

Some extensions in dconf weren't actually installed... seems to have been the problem, since it's working now...

Hope that helps.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.