diff --git a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml index 34a65af..ce69439 100644 --- a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml +++ b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml @@ -189,6 +189,19 @@ --> + + + + + + + diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index 19d07ac..112d60f 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -341,6 +341,22 @@ var GnomeShellExtensions = class { ExtensionDownloader.checkForUpdates(); } + LoadUserExtension(uuid) { + let extension = ExtensionUtils.extensions[uuid]; + if (extension) + return true; + + let dir = Gio.File.new_for_path(GLib.build_filenamev([global.userdatadir, 'extensions', uuid])); + try { + extension = ExtensionUtils.createExtensionObject(uuid, dir, ExtensionUtils.ExtensionType.PER_USER); + ExtensionSystem.loadExtension(extension); + } catch (e) { + log('Could not load user extension from %s'.format(dir.get_path())); + return false; + } + return true; + } + get ShellVersion() { return Config.PACKAGE_VERSION; }