From de3db6fb199420bea8f36caff9faa6b2befc26bf Mon Sep 17 00:00:00 2001 From: Arvedui Date: Fri, 15 Aug 2014 00:12:18 +0200 Subject: [PATCH 1/2] added option for disabeling click events --- i3pystatus/core/__init__.py | 4 ++-- i3pystatus/core/io.py | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/i3pystatus/core/__init__.py b/i3pystatus/core/__init__.py index 73bd820..eac72d9 100644 --- a/i3pystatus/core/__init__.py +++ b/i3pystatus/core/__init__.py @@ -42,11 +42,11 @@ class Status: :param input_stream: A file-like object that provides the input stream, if `standalone` is False. """ - def __init__(self, standalone=False, interval=1, input_stream=sys.stdin): + def __init__(self, standalone=False, interval=1, input_stream=sys.stdin, click_events=True): self.modules = util.ModuleList(self, ClassFinder(Module)) self.standalone = standalone if standalone: - self.io = io.StandaloneIO(interval) + self.io = io.StandaloneIO(click_events, interval) self.command_endpoint = CommandEndpoint( self.modules, lambda: io.JSONIO(io=io.IOHandler(sys.stdin, open(os.devnull, "w")), skiplines=1)) diff --git a/i3pystatus/core/io.py b/i3pystatus/core/io.py index f6fb856..02b872c 100644 --- a/i3pystatus/core/io.py +++ b/i3pystatus/core/io.py @@ -51,11 +51,14 @@ class StandaloneIO(IOHandler): """ n = -1 - proto = ('{"version":1,"click_events":true}', "[", "[]", ",[]",) + proto = [{"version":1,"click_events":True}, "[", "[]", ",[]",] - def __init__(self, interval=1): + def __init__(self, click_events, interval=1): super().__init__() self.interval = interval + self.proto[0]['click_events'] = click_events + self.proto[0] = json.dumps(self.proto[0]) + def read(self): while True: From cee58e495c5a7326da35942ccf29fa537e86d3a0 Mon Sep 17 00:00:00 2001 From: Arvedui Date: Fri, 15 Aug 2014 00:16:50 +0200 Subject: [PATCH 2/2] prevents start of command_endpoint thread when click_events are disabled --- i3pystatus/core/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/i3pystatus/core/__init__.py b/i3pystatus/core/__init__.py index eac72d9..46abd3f 100644 --- a/i3pystatus/core/__init__.py +++ b/i3pystatus/core/__init__.py @@ -45,11 +45,13 @@ class Status: def __init__(self, standalone=False, interval=1, input_stream=sys.stdin, click_events=True): self.modules = util.ModuleList(self, ClassFinder(Module)) self.standalone = standalone + self.click_events = click_events if standalone: - self.io = io.StandaloneIO(click_events, interval) - self.command_endpoint = CommandEndpoint( - self.modules, - lambda: io.JSONIO(io=io.IOHandler(sys.stdin, open(os.devnull, "w")), skiplines=1)) + self.io = io.StandaloneIO(self.click_events, interval) + if self.click_events: + self.command_endpoint = CommandEndpoint( + self.modules, + lambda: io.JSONIO(io=io.IOHandler(sys.stdin, open(os.devnull, "w")), skiplines=1)) else: self.io = io.IOHandler(input_stream) @@ -78,7 +80,8 @@ class Status: text=configuration_error.message)) def run(self): - self.command_endpoint.start() + if self.click_events: + self.command_endpoint.start() for j in io.JSONIO(self.io).read(): for module in self.modules: module.inject(j)