Ubuntu – Gnome shell extenstions have to be turned back on after reboot

gnomegnome-shellgnome-shell-extension

Whenever I reboot my system (ubuntu 14.04 with gnome 3.12) all the gnome shell extensions turn off. I can just re-enable them and they work fine until I reboot again. What can I do to make gnome restart the same shell extensions on startup?

Best Answer

GNOME 3.12 isn't available by default in Ubuntu repositories for 14.04. You must have installed GNOME 3.12 from the Staging PPA of the GNOME Team. They warn that:

The packages here have been deemed not ready for general use, they have known bugs and/or regressions, sometimes of a critical nature. Mostly things should run smoothly but be prepared to use ppa-purge, when you encounter issues!

So you should report a bug about it as mentioned on their Launchpad page.

However, the workaround that you may try is as follows:

  1. Enable all the extensions you wish to be enabled at boot.

  2. Then, run the following command:

    $ gsettings get org.gnome.shell enabled-extensions 
    

    This would list all the extensions that are enabled currently. For example, the output for me is:

    ['apps-menu@gnome-shell-extensions.gcampax.github.com', 'places-menu@gnome-shell-extensions.gcampax.github.com', 'window-list@gnome-shell-extensions.gcampax.github.com']
    
  3. Now, create a file called enable_gnome_extensions.sh inside ~/bin folder with the following text in it:

    gsettings set org.gnome.shell enabled-extensions "<output_of_earlier_command_listing_enabled_extensions>"
    

    For example, I would put the following line for my enabled extensions:

    gsettings set org.gnome.shell enabled-extensions "['apps-menu@gnome-shell-extensions.gcampax.github.com', 'places-menu@gnome-shell-extensions.gcampax.github.com', 'window-list@gnome-shell-extensions.gcampax.github.com']"
    
  4. Make this file executable with the following command:

    $ chmod +x ~/bin/enable_gnome_extensions.sh
    
  5. Add this file to your Startup Applications for it to be executed at login. Follow this answer for how to do it. The "command" would be the path to that file.

Reboot to test if it works.

Related Question