summaryrefslogtreecommitdiff
path: root/ar/.local/bin/statusbar
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.local/bin/statusbar')
-rwxr-xr-xar/.local/bin/statusbar/sb-mic2
-rwxr-xr-xar/.local/bin/statusbar/sb-micup12
2 files changed, 14 insertions, 0 deletions
diff --git a/ar/.local/bin/statusbar/sb-mic b/ar/.local/bin/statusbar/sb-mic
index 36cebca..faa618a 100755
--- a/ar/.local/bin/statusbar/sb-mic
+++ b/ar/.local/bin/statusbar/sb-mic
@@ -45,6 +45,8 @@ case $BLOCK_BUTTON in
6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;;
esac
+pidof -x sb-micup >/dev/null 2>&1 || sb-micup >/dev/null 2>&1 &
+
mic="$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)"
if [ "$mic" != "${mic%\[MUTED\]}" ]; then
diff --git a/ar/.local/bin/statusbar/sb-micup b/ar/.local/bin/statusbar/sb-micup
new file mode 100755
index 0000000..35807a0
--- /dev/null
+++ b/ar/.local/bin/statusbar/sb-micup
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Updates the mic statusbar module when audio sources change
+# (e.g. bluetooth/usb device connect/disconnect, mute changed outside dwm)
+
+signal() { pkill -RTMIN+5 "${STATUSBAR:-dwmblocks}" 2>/dev/null; }
+
+pactl subscribe 2>/dev/null | while read -r line; do
+ case "$line" in
+ *" on source #"* | *" on card #"* | *" on server"*) signal ;;
+ esac
+done