タイルウィンドウマネージャにテキストステータスバーがあり、ここに情報を提供するためにtclを使用しています。現在のボリュームを0%から100%まで出力するコマンドラインが必要です。私はアーチLinuxを使用しています。
答え1
amixer
ステータスバーのボリューム出力を解析するコード1行:
awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master)
編集する: 2020年11月現在更新されたArch Linux用amixerは1.2.4で、出力に「dB」はありません。したがって、コマンドを次のように置き換える必要があります。
awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)
答え2
これを行うために使用できますamixer
。
はい
$ amixer get Master
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 65536 [100%] [off]
Front Right: Playback 65536 [100%] [off]
次のように変更してミュートすることもできます。
ボリュームを75%に設定
$ amixer set Master 75%
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 49152 [75%] [on]
Front Right: Playback 49152 [75%] [on]
ミュート/ミュート解除
$ amixer set Master toggle
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
スイッチの出力を見たくない場合は、出力をミュートできます--quiet
。
$ amixer --quiet set Master 75%
$
答え3
正しい
amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }'
85%
左
amixer sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%
サウンドサーバー
デフォルトでは、pulseaudioを使用していない場合にamixer
使用するサーバーを指定できます。-D pulse
amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%
答え4
私が持っている1つの解決策はechoを使用することでした(どこでも見つけることができないので、これが最善の方法ではないかどうかを知りたい)。
echo "${$(echo "${$(amixer get Master | grep Left:)#*\[}")%%\]*}"
ちょうどEchoに最初の「[」の始まりと最後の「]」の終わりを削除するように依頼しました。