スピーカーの音量を変更する

PulseAudioスピーカーの音量を変更するにはpacmdコマンドを使用するのですが、すぐにデバイス番号などを忘れてしまったりするので、ボリューム変更に特化したシェルスクリプト set-volume を作成してみました。

 


 

#!/bin/bash
temp=`mktemp XXXX.tmp`
target="alsa_output.pci-xxxx"
pacmd list-sinks |\
grep -B 1 -A 10 $target > $temp
index=`cat $temp |\
grep index |\
sed -e "s/^.*://g"`
left_volume=`cat $temp |\
grep front-left: |\
sed -e "s/^.*front-left://g"|\
awk '{print $1}'`
right_volume=`cat $temp |\
grep front-right: |\
sed -e "s/^.*front-right://g"|\
awk '{print $1}'`
echo index=$index
echo 前の音量=$left_volume $right_volume
printf "変更後の音量:"; read volume
pacmd set-sink-volume $index $volume
rm $temp 

 

alsa_output.pci-xxxxというデバイスを使用しているとします。

pacmd list-sinks コマンドで全てのステータスをリストし、文字列"alsa_output.pci-xxxx"を含む行の前1行、後10行をgrep -B -A コマンドで一時ファイルに書き出します。

この一時ファイルからindexとvolumeに関係する部分を検索し、表示しています。

 

端末でset-volumeと叩くとデバイス番号(ここでは1)と現在の音量(30000)が表示され、変更後の音量を入力できるようになります。数値を入力すると(32000)、pacmd set-sink-volumeコマンドによって音量が変更されます。

 

f:id:S_E_Hyphen:20171018111722p:plain