From 67142d642b1a4251008e58ee73db688a4f721f11 Mon Sep 17 00:00:00 2001 From: Tobias Witek Date: Sat, 5 Nov 2016 15:39:21 +0100 Subject: [PATCH] [module/output] Re-enable user configurable mouse click events This is now much nicer implemented to address issue #3. A user can now have a configuration parameter mapped to a module instance (via the module name or the instance name) with the value "left-click", "right-click", etc., like this: -m disk:home -p home.left-click="nautilus {instance}" --- bumblebee/module.py | 15 +++++++++++++++ bumblebee/output.py | 2 ++ 2 files changed, 17 insertions(+) diff --git a/bumblebee/module.py b/bumblebee/module.py index efbf498..aac2c3a 100644 --- a/bumblebee/module.py +++ b/bumblebee/module.py @@ -39,6 +39,21 @@ class Module(object): name = "{}.".format(alias if alias else self.__module__.split(".")[-1]) self._config = bumblebee.config.ModuleConfig(config, name) + buttons = [ + { "name": "left-click", "id": 1 }, + { "name": "middle-click", "id": 2 }, + { "name": "right-click", "id": 3 }, + { "name": "wheel-up", "id": 4 }, + { "name": "wheel-down", "id": 5 }, + ] + for button in buttons: + if self._config.parameter(button["name"], None): + output.add_callback( + module=self.instance(), + button=button["id"], + cmd=self._config.parameter(button["name"]) + ) + def critical(self, widget): return False diff --git a/bumblebee/output.py b/bumblebee/output.py index 605da67..43d7688 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -63,6 +63,8 @@ class Output(object): if module: module = module.replace("bumblebee.modules.", "") + if self._callbacks.get((button, module)): return + self._callbacks[( button, module,