def __init__(self, **options): Tweak.__init__(self, "Shell theme", "Install custom or user themes for gnome-shell", **options) #check the shell is running and the usertheme extension is present error = "Unknown" try: self._shell = GnomeShell() except: error = "Shell not running" try: extensions = self._shell.list_extensions() if ThemeInstaller.THEME_EXT_NAME in extensions and extensions[ThemeInstaller.THEME_EXT_NAME]["state"] == 1: #check the correct gsettings key is present try: self._settings = GSettingsSetting(ThemeInstaller.THEME_GSETTINGS_SCHEMA) name = self._settings.get_value(ThemeInstaller.THEME_GSETTINGS_NAME) print "!!!!", name error = None except: error = "User Theme extension schema missing" else: error = "User Theme extension not enabled" except Exception, e: error = "Could not list shell extensions"
class ThemeInstaller(Tweak): THEME_EXT_NAME = "*****@*****.**" THEME_GSETTINGS_SCHEMA = "org.gnome.shell.extensions.user-theme" THEME_GSETTINGS_NAME = "name" THEME_DIR = os.path.join(GLib.get_home_dir(), ".themes") def __init__(self, **options): Tweak.__init__(self, "Shell theme", "Install custom or user themes for gnome-shell", **options) #check the shell is running and the usertheme extension is present error = "Unknown" try: self._shell = GnomeShell() except: error = "Shell not running" try: extensions = self._shell.list_extensions() if ThemeInstaller.THEME_EXT_NAME in extensions and extensions[ThemeInstaller.THEME_EXT_NAME]["state"] == 1: #check the correct gsettings key is present try: self._settings = GSettingsSetting(ThemeInstaller.THEME_GSETTINGS_SCHEMA) name = self._settings.get_value(ThemeInstaller.THEME_GSETTINGS_NAME) print "!!!!", name error = None except: error = "User Theme extension schema missing" else: error = "User Theme extension not enabled" except Exception, e: error = "Could not list shell extensions" if error: info = Gtk.InfoBar() info.props.message_type = Gtk.MessageType.INFO info.get_content_area().add(Gtk.Label(error)) self.widget = build_label_beside_widget(self.name, info) self.widget_for_size_group = info else: hb = Gtk.HBox() b = Gtk.Button.new_from_stock(Gtk.STOCK_REVERT_TO_SAVED) b.connect("clicked", self._on_revert) hb.pack_start(b, False, False, 5) chooser = _ThemeZipChooser() chooser.connect("file-set", self._on_file_set) hb.pack_start(chooser, False, False, 0) self.widget = build_label_beside_widget(self.name, hb) self.widget_for_size_group = chooser