目標は、画面がロックされているときに音をミュートすることです。
理想的には、ロックを解除した後でも音が復元されます。
サウンドシステムは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にリセットされ復元されます。