diff --git a/core/module.py b/core/module.py index 55ab2ea..4e34b2b 100644 --- a/core/module.py +++ b/core/module.py @@ -36,6 +36,7 @@ class Module(core.input.Object): for widget in self._widgets: widget.module(self) self._name = None + self.next_update = None def parameter(self, key, default=None): value = default diff --git a/core/output.py b/core/output.py index acaff2e..be0dd6a 100644 --- a/core/output.py +++ b/core/output.py @@ -102,10 +102,15 @@ class i3(object): return widgets def update(self, affected_modules=None): + now = time.time() for module in self._modules: if affected_modules and not module.id() in affected_modules: continue + if not affected_modules and module.next_update: + if now < module.next_update: + continue module.update_wrapper() + module.next_update = now + float(module.parameter('interval', self._config.interval())) for widget in module.widgets(): self._status[widget] = widget.full_text()