From adecf122c7df49cf81b884e72c4011240ea5660d Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado <55825613+luevano@users.noreply.github.com> Date: Sun, 13 Dec 2020 19:55:46 -0700 Subject: Redo config and add dunst do-not-disturb --- .local/bin/blocks/dunst | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 .local/bin/blocks/dunst (limited to '.local/bin/blocks') diff --git a/.local/bin/blocks/dunst b/.local/bin/blocks/dunst new file mode 100755 index 0000000..6f7ab0c --- /dev/null +++ b/.local/bin/blocks/dunst @@ -0,0 +1,59 @@ +#!/usr/bin/python +""" +A do-not-disturb button for muting Dunst notifications in i3 using i3blocks +Mute is handled by passing 'DUNST_COMMAND_PAUSE' and 'DUNST_COMMAND_RESUME' to +the notify-send script and the 'DUNST_MUTE' environment variable is set to keep +track of the toggle. +""" +import os +import subprocess +import json + + +def mute_on(): + '''Turns off dunst notifications''' + subprocess.run(["notify-send", "DUNST_COMMAND_PAUSE"], check=True) + return { + "full_text":"\uf1f6", + "DUNST_MUTE":"on" + } + + +def mute_off(): + '''Turns back on dunst notifications''' + subprocess.run(["notify-send", "DUNST_COMMAND_RESUME"], check=True) + return { + "full_text":"\uf0f3", + "DUNST_MUTE":"off" + } + + +def clicked(): + '''Returns True if the button was clicked''' + button = "BLOCK_BUTTON" in os.environ and os.environ["BLOCK_BUTTON"] + return bool(button) + + +def muted(): + '''Returns True if Dunst is muted''' + mute = "DUNST_MUTE" in os.environ and os.environ["DUNST_MUTE"] + return mute == 'on' + + +if clicked(): + # toggle button click to turn mute on and off + if muted(): + RTN = mute_off() + else: + RTN = mute_on() + + +else: + # Set default state using 'DUNST_MUTE' environment variable + if muted(): + RTN = mute_on() + else: + RTN = mute_off() + + +print(json.dumps(RTN)) -- cgit v1.2.3-54-g00ecf