Como obter o nível de volume a partir da linha de comando?

11

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.

    
por milarepa 05.09.2013 / 20:57

3 respostas

11

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)
    
por 05.09.2013 / 22:58
8

Você pode usar amixer para fazer isso.

Exemplos

$ 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%
$ 
    
por 05.09.2013 / 22:43
2

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%
    
por 07.04.2018 / 15:56