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></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