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