Um one-liner para analisar a saída de amixer
para volume em uma barra de status:
awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master)
Eu tenho uma barra de status de texto em um gerenciador de janelas lado a lado e estou usando tcl para alimentar informações para ele. No momento eu preciso de uma linha de comando que produza o nível de volume de 0% a 100%. Eu estou usando o Arch Linux.
Você pode usar amixer
para fazer isso.
$ 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]
Você também pode alterá-lo e desativá-lo da seguinte forma:
definir volume 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]
silenciar / ativar / desativar
$ 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]
Você pode silenciar a saída se não quiser ver nada dela com a opção --quiet
.
$ amixer --quiet set Master 75%
$
Direito
amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }'
85%
Esquerda
amixer sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%
Servidor de som
Se você não estiver usando pulseaudio como padrão, você pode especificar para amixer
qual servidor usar com -D pulse
amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%