diff --git a/i3pystatus/__init__.py b/i3pystatus/__init__.py index 052143d..806ff8a 100644 --- a/i3pystatus/__init__.py +++ b/i3pystatus/__init__.py @@ -41,7 +41,7 @@ class Status: if j["command"] == "block_clicked": module = self.modules.get_by_id(j["instance"]) if module: - module.on_click() + module.on_click(j["button"]) def run(self): for j in io.JSONIO(self.io).read(): diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index 41a9b8e..eb094c0 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -21,7 +21,16 @@ class Module(SettingsBase): self.output["instance"] = str(id(self)) json.insert(0, self.output) - def on_click(self): + def on_click(self, button): + if button == 1: # Left mouse button + self.on_leftclick() + elif button == 3: # Right mouse button + self.on_rightclick() + + def on_leftclick(self): + pass + + def on_rightclick(self): pass def __repr__(self): diff --git a/i3pystatus/modsde.py b/i3pystatus/modsde.py index 04b6410..b2f3ad0 100644 --- a/i3pystatus/modsde.py +++ b/i3pystatus/modsde.py @@ -87,5 +87,5 @@ class ModsDeChecker(IntervalModule): self.opener.addheaders.append(("Cookie", "{}={}".format(cookie.name, cookie.value))) return True - def on_click(self): - webbrowser.open_new_tab("http://forum.mods.de/bb/") \ No newline at end of file + def on_leftclick(self): + webbrowser.open_new_tab("http://forum.mods.de/bb/") diff --git a/i3pystatus/network.py b/i3pystatus/network.py index c007ccf..e4b113b 100644 --- a/i3pystatus/network.py +++ b/i3pystatus/network.py @@ -1,5 +1,6 @@ from itertools import zip_longest +import subprocess # PyPI: netifaces-py3 import netifaces @@ -61,7 +62,7 @@ class Network(IntervalModule): ("interface", "Interface to obtain information for, i.e. eth0"), "format_up", "color_up", "format_down", "color_down", - "name" + "name", ) name = interface = "eth0" @@ -113,3 +114,6 @@ class Network(IntervalModule): "color": color, "instance": self.interface } + + def on_leftclick(self): + subprocess.Popen(["nm-connection-editor"]) diff --git a/i3pystatus/parcel.py b/i3pystatus/parcel.py index 15509b9..b75b13a 100644 --- a/i3pystatus/parcel.py +++ b/i3pystatus/parcel.py @@ -64,5 +64,5 @@ class ParcelTracker(IntervalModule): "instance": self.name, } - def on_click(self): + def on_leftclick(self): webbrowser.open_new_tab(self.instance.get_url())