From b373de4cad9df61bbae43ce817e079c838e18540 Mon Sep 17 00:00:00 2001 From: Tobias Witek Date: Sat, 7 Mar 2020 13:48:54 +0100 Subject: [PATCH] [modules] Import module dunst --- modules/contrib/dunst.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 modules/contrib/dunst.py diff --git a/modules/contrib/dunst.py b/modules/contrib/dunst.py new file mode 100644 index 0000000..e805ef5 --- /dev/null +++ b/modules/contrib/dunst.py @@ -0,0 +1,39 @@ +#pylint: disable=C0111,R0903 + +"""Toggle dunst notifications.""" + +import bumblebee.input +import bumblebee.output +import bumblebee.engine + + +class Module(bumblebee.engine.Module): + def __init__(self, engine, config): + super(Module, self).__init__(engine, config, + bumblebee.output.Widget(full_text="") + ) + self._paused = False + # Make sure that dunst is currently not paused + try: + bumblebee.util.execute("killall -SIGUSR2 dunst") + except: + pass + engine.input.register_callback(self, button=bumblebee.input.LEFT_MOUSE, + cmd=self.toggle_status + ) + + def toggle_status(self, event): + self._paused = not self._paused + + try: + if self._paused: + bumblebee.util.execute("killall -SIGUSR1 dunst") + else: + bumblebee.util.execute("killall -SIGUSR2 dunst") + except: + self._paused = not self._paused # toggling failed + + def state(self, widget): + if self._paused: + return ["muted", "warning"] + return ["unmuted"]