summaryrefslogtreecommitdiff
diff options
authorSylvain Pineau <sylvain.pineau@canonical.com>2015-04-07 23:47:44 +0200
committerSylvain Pineau <sylvain.pineau@canonical.com>2015-04-07 23:47:44 +0200
commit55bb60b62a2aaa09419a613599d2d9dfce79c4d4 (patch)
tree6e7c17bd6466b9c657c019456d451d16b8d2d091
parent25dd3cbd15b1d352f3b5d4d483cb02c4df2ea148 (diff)
providers:checkbox:bin:manage_compiz_plugin: Python3 version + gsettingsplainbox-provider-checkbox-v0.20c3plainbox-provider-checkbox-v0.20c2
Remove the need of python-compizconfig and replace it just only gsettings get/set calls. shebang updated to python3
-rwxr-xr-xbin/manage_compiz_plugin43
1 files changed, 16 insertions, 27 deletions
diff --git a/bin/manage_compiz_plugin b/bin/manage_compiz_plugin
index 34ec9ee..0b8e479 100755
--- a/bin/manage_compiz_plugin
+++ b/bin/manage_compiz_plugin
@@ -1,9 +1,10 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
# This file is part of Checkbox.
#
-# Copyright 2014 Canonical Ltd.
+# Copyright 2014-2015 Canonical Ltd.
# Written by:
# Daniel Manrique <roadmr@ubuntu.com>
+# Sylvain Pineau <sylvain.pineau@canonical.com>
#
# Checkbox is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
@@ -21,12 +22,7 @@ manage_compiz_plugin
====================
This script allows enabling or disabling compiz plugins using
-python-compizconfig as a backend. Changes take effect on the fly.
-
-The script depends on:
- python-compizconfig
-
-And unfortunately only works on Python 2.x.
+gsettings. Changes take effect on the fly.
"""
from gettext import gettext as _
@@ -34,22 +30,18 @@ import argparse
import gettext
import os
import sys
+import subprocess
import time
+PATH="org.compiz.core:/org/compiz/profiles/unity/plugins/core/"
+KEY="active-plugins"
+
gettext.textdomain("2013.com.canonical.certification.checkbox")
gettext.bindtextdomain("2013.com.canonical.certification.checkbox",
os.getenv("CHECKBOX_PROVIDER_LOCALE_DIR", None))
+plugins = eval(subprocess.check_output(["gsettings", "get", PATH, KEY]))
-try:
- import compizconfig
-except ImportError:
- raise SystemExit(_("Can't import compizconfig: {}").format(sys.exc_info()[1]))
-
-
-context = compizconfig.Context()
-
-plugins = sorted(context.Plugins.keys())
parser = argparse.ArgumentParser(description=_("enable/disable compiz plugins"),
epilog=_("Available plugins: {}").format(plugins))
parser.add_argument("plugin", type=str, help=_('Name of plugin to control'))
@@ -58,17 +50,14 @@ parser.add_argument("action", type=str, choices=['enable', 'disable'],
args = parser.parse_args()
-
-if args.plugin not in context.Plugins.keys():
- raise SystemExit(_("Plugin {} doesn't exist").format(args.plugin))
-
if args.action == 'enable':
- state = 1
+ if args.plugin in plugins:
+ raise SystemExit(_("Plugin {} already enabled").format(args.plugin))
+ plugins.append(args.plugin)
else:
- state = 0
+ if args.plugin not in plugins:
+ raise SystemExit(_("Plugin {} doesn't exist").format(args.plugin))
+ plugins.remove(args.plugin)
+subprocess.call(["gsettings", "set", PATH, KEY, str(plugins)])
-print(_("Setting {plugin} enabled status to {status}").format(plugin=args.plugin,
- status=state))
-context.Plugins[args.plugin].Enabled = state
time.sleep(3)
-print(_("New status is {status}").format(status=context.Plugins[args.plugin].Enabled))