From 7709f8a80ca14bdf7409fc175aa0c198d9cab6d6 Mon Sep 17 00:00:00 2001
From: Anton Sarukhanov <code@ant.sr>
Date: Fri, 1 Nov 2019 22:42:42 -0400
Subject: [PATCH] Add lockmute post

---
 .../gnome-mute-when-locked.md                 |  72 ++++++++++++++++++
 content/media/lockmute-250.png                | Bin 0 -> 6464 bytes
 2 files changed, 72 insertions(+)
 create mode 100644 content/System Administration/gnome-mute-when-locked.md
 create mode 100644 content/media/lockmute-250.png

diff --git a/content/System Administration/gnome-mute-when-locked.md b/content/System Administration/gnome-mute-when-locked.md
new file mode 100644
index 0000000..26748b7
--- /dev/null
+++ b/content/System Administration/gnome-mute-when-locked.md	
@@ -0,0 +1,72 @@
+Title: Mute speakers when locking your PC
+Description: Automatically mute audio output when your computer is locked.
+Date: November 1, 2019
+
+
+<center>![lockmute icon](/media/lockmute-250.png)</center>
+
+Are your coworkers/cohabitants tired of hearing notifications and other noises from your unattended computer?
+Use this script to automatically mute your speakers whenever the machine is locked, and un-mute when you return.
+
+* Tested with **GNOME 3.30** on **Debian 10**.
+* Mutes when locking, un-mutes when unlocking.
+* *Does not* un-mute if mute was enabled prior to locking the screen.
+
+### How it works
+
+* Watches `org.freedesktop.login1` for `LockedHint` events via `gdbus monitor`.
+* Uses `amixer` ([ALSA](https://www.alsa-project.org/wiki/Main_Page)) to mute/unmute.
+
+```bash
+#!/bin/bash
+
+# lockmute.sh - Mute sound output while GNOME is locked.
+
+STATE_FILE=~/.lockmute_state
+gdbus monitor -y -d org.freedesktop.login1 |
+    while read -r DBUS_OUTPUT ; do
+        LOCK_STATE=$(echo "$DBUS_OUTPUT" |
+                     grep -o "'LockedHint': <\w*>" |
+                     awk '{print $2}')
+        if [[ "$LOCK_STATE" == "<true>" ]]; then
+            AUDIO_STATE=$(amixer get Master |
+                          grep -o '\[\(on\|off\)\]')
+            if [[ "$AUDIO_STATE" == *"[off]"* ]]; then
+                echo "WAS_MUTED" > "$STATE_FILE"
+            else
+                echo "WAS_NOT_MUTED" > "$STATE_FILE"
+            fi
+            amixer set Master mute > /dev/null
+        elif [[ "$LOCK_STATE" == "<false>" ]]; then
+            if [[ "$(cat "$STATE_FILE")" == "WAS_NOT_MUTED" ]]; then
+                amixer set Master unmute > /dev/null
+            fi
+            rm "$STATE_FILE"
+        fi
+    done
+```
+
+
+## Installation
+
+1. Save to `/usr/local/bin/lockmute.sh`.
+2. Make it executable: `chmod +x /usr/local/bin/lockmute.sh`.
+
+## Test it
+
+You can test it by running `lockmute.sh` in a terminal. Play some music, and lock the screen (`Super`+`L`).
+
+## Run it automatically
+
+To run this anytime you're logged in, create an [autostart](https://developer.gnome.org/autostart-spec/) entry.
+
+### ```~/.config/autostart/lockmute.desktop ```
+
+```
+[Desktop Entry]
+Name=lockmute
+Exec=/usr/local/bin/lockmute.sh
+Type=Application
+NoDisplay=true
+X-GNOME-Autostart-enabled=true
+```
diff --git a/content/media/lockmute-250.png b/content/media/lockmute-250.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2dd7e711a4197bbe1444330184c7a92f8fc248d
GIT binary patch
literal 6464
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
aGc7PQIxsNZ?@@*T0000<MNUMnLSTYqUpEK<

literal 0
HcmV?d00001

-- 
GitLab