xscreensaverがロックされているときに音をミュートする方法

xscreensaverがロックされているときに音をミュートする方法

目標は、画面がロックされているときに音をミュートすることです。

理想的には、ロックを解除した後でも音が復元されます。

サウンドシステムはPulseaudioです。

ベストアンサー1

このスクリプトを起動します(またはログイン時に自動的に起動するようにこのスクリプトを設定します)。

#!/bin/bash -euET
{
set -o pipefail

export DBUS_SESSION_BUS_ADDRESS="${DBUS_SESSION_BUS_ADDRESS:-unix:path=/run/user/$(id -u)/bus}"
export DISPLAY="${DISPLAY:-:0}"

xscreensaver-command -watch | while read -r line ; do
    echo "handling event: $line"

    if [[ $line = LOCK* ]]; then
      volume=$(pamixer --get-volume)
      echo "current volume is $volume"
      pamixer --set-volume 0
    fi

    if [[ $line = UNBLANK* ]]; then
      echo "setting volume to $volume"
      pamixer --set-volume "$volume"
    fi
done

exit
}

説明する:このスクリプトの「デーモン」部分はxscreensaver-command -watch停止し、xscreensaverのイベントを待ちます。 「LOCK」または「UNBLANK」イベントが発生するたびに、ボリュームはそれぞれ0にリセットされ復元されます。

おすすめ記事