[gnome-shell] gnome-shell-extension-tool: Add a reload option
- From: Jonh Wendell <jwendell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] gnome-shell-extension-tool: Add a reload option
- Date: Fri, 28 Oct 2016 17:45:09 +0000 (UTC)
commit 2812afed2236a6a60ccfd5232b64ea4dbd24370a
Author: Jonh Wendell <jonh wendell redhat com>
Date: Sat Oct 8 15:23:45 2016 -0300
gnome-shell-extension-tool: Add a reload option
This might be a good fit for extension developers: With
this option one doesn't need to restart the whole Shell
in order to see their changes in effect.
https://bugzilla.gnome.org/show_bug.cgi?id=772593
src/gnome-shell-extension-tool.in | 31 ++++++++++++++++++++++++++++++-
1 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/src/gnome-shell-extension-tool.in b/src/gnome-shell-extension-tool.in
index d10d433..f6c3762 100644
--- a/src/gnome-shell-extension-tool.in
+++ b/src/gnome-shell-extension-tool.in
@@ -17,7 +17,7 @@ except ImportError:
print('The Python simplejson module is required')
sys.exit(1)
-from gi.repository import Gio
+from gi.repository import Gio, GLib
SAMPLE_EXTENSION_FILES = {
"extension.js": """
@@ -172,6 +172,30 @@ def disable_extension(uuid):
settings.set_strv(ENABLED_EXTENSIONS_KEY, extensions)
print("%r is now disabled." % (uuid,), file=sys.stderr)
+def reload_extension(uuid):
+ settings = Gio.Settings(schema='org.gnome.shell')
+ extensions = settings.get_strv(ENABLED_EXTENSIONS_KEY)
+
+ if uuid not in extensions:
+ print("%r is not enabled or installed." % (uuid,), file=sys.stderr)
+ sys.exit(1)
+
+ proxy = Gio.DBusProxy.new_sync(Gio.bus_get_sync(Gio.BusType.SESSION, None),
+ Gio.DBusProxyFlags.NONE,
+ None,
+ 'org.gnome.Shell',
+ '/org/gnome/Shell',
+ 'org.gnome.Shell.Extensions',
+ None)
+ proxy.call_sync('ReloadExtension',
+ GLib.Variant('(s)', (uuid,)),
+ Gio.DBusCallFlags.NONE,
+ -1,
+ None)
+
+ print("%r reloaded." % (uuid,), file=sys.stderr)
+
+
def main():
parser = optparse.OptionParser()
parser.add_option("-d", "--disable-extension", dest="disable",
@@ -180,6 +204,8 @@ def main():
help="Enable a GNOME Shell extension")
parser.add_option("-c", "--create-extension", dest="create", action="store_true",
help="Create a new GNOME Shell extension")
+ parser.add_option("-r", "--reload-extension", dest="reload",
+ help="Reload a GNOME Shell extension")
options, args = parser.parse_args()
if args:
@@ -195,6 +221,9 @@ def main():
elif options.create:
create_extension()
+ elif options.reload:
+ reload_extension(options.reload)
+
else:
parser.print_usage()
sys.exit(1)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]