diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index 31ca615..379a31b 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -20,6 +20,9 @@ class Module(SettingsBase): self.output["name"] = self.__name__ json.insert(0, self.output) + def __repr__(self): + return self.__class__.__name__ + class AsyncModule(Module): def registered(self, status_handler): self.thread = Thread(target=self.mainloop) diff --git a/i3pystatus/core/threads.py b/i3pystatus/core/threads.py index cb8348d..487dc7f 100644 --- a/i3pystatus/core/threads.py +++ b/i3pystatus/core/threads.py @@ -5,6 +5,12 @@ import time import traceback import collections +try: + from setproctitle import setproctitle +except ImportError: + def setproctitle(title): + pass + if hasattr(time, "perf_counter"): timer = time.perf_counter else: @@ -58,6 +64,8 @@ class Thread(threading.Thread): while len(self) <= self.start_barrier: time.sleep(0.3) + setproctitle("i3pystatus: {name}/{workloads}".format(name=self.name, workloads=list(map(repr, self.workloads)))) + while self: for workload in self: workload()