Skip to content

Instantly share code, notes, and snippets.

@lobre
Created April 30, 2014 13:52
Show Gist options
  • Save lobre/e84582e6974d6aa3fffb to your computer and use it in GitHub Desktop.
Save lobre/e84582e6974d6aa3fffb to your computer and use it in GitHub Desktop.
Enable gnome extensions at startup
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
from os import listdir
from os import popen
from os.path import isdir, join, expanduser
import time
pre_installed_ext_folder = "/usr/share/gnome-shell/extensions"
my_ext_folder = "{}/.local/share/gnome-shell/extensions".format(expanduser("~"))
black_list = []
white_list = []
######## GET EXTENSIONS ###########
def getAllExtensions():
extensions = [d for d in listdir(pre_installed_ext_folder) if isdir(join(pre_installed_ext_folder,d))] # Get pre installed extensions
extensions = extensions + [d for d in listdir(my_ext_folder) if isdir(join(my_ext_folder,d))] # Add my extensions
return extensions
def getEnabledExtensions():
extensions_string = popen("gsettings get org.gnome.shell enabled-extensions").read()
extensions = [extension.strip("'") for extension in extensions_string.strip().strip('[').strip(']').split(',')]
return extensions
def getDisabledExtensions():
extensions = [extension for extension in getAllExtensions() if extension not in getEnabledExtensions()]
return extensions
####### ENABLE/DISABLE EXTENSIONS ##########
def enableAllExtensions():
popen("gsettings set org.gnome.shell enabled-extensions \"{}\"".format(getAllExtensions()))
def enableOneExtension(extension):
popen("gnome-shell-extension-tool -e {}".format(extension))
def disableAllExtensions():
popen("gsettings set org.gnome.shell enabled-extensions \"[]\"")
def disableOneExtension(extension):
popen("gnome-shell-extension-tool -d {}".format(extension))
####### OTHERS #########
# Sometimes, it's necessary to restart gnome shell if not startup
def restartGnomeShell():
popen("nohup gnome-shell --replace &")
def disableBlackListExtensions():
for extension in black_list:
disableOneExtension(extension)
def enableWhiteListExtensions():
for extension in white_list:
enableOneExtension(extension)
####### MAIN ##########
if __name__ == '__main__':
time.sleep(2) # Just in case
enableAllExtensions()
time.sleep(2) # Just in case too
disableBlackListExtensions()
@lobre
Copy link
Author

lobre commented Apr 30, 2014

Python script used to enable gnome extensions at startup

Sometimes in some versions of Gnome Shell, extensions are disabled after reboot. It's very boring and I could not wait for the bug fix so I implemented this script that enable all extensions.

You just have to add it to your startup applications and everything should be ok.

Don't forget to make it executable with chmod +x enableGnomeExtensions.py and then gnome-session-properties to manage startup applications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment