Definir volume do terminal


83

É possível definir o volume do áudio usando o terminal em vez de clicar no ícone do alto-falante na barra superior?

O motivo pelo qual desejo fazer isso é que meu teclado não possui botões de aumento / diminuição de volume e acho irritante procurar o mouse.


11
Ler nível de volume principal em porcentagem de número 0% -100%: amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }' aumentar o nível de volume principal em 10%:amixer -q sset Master 10%+
Eric Leschinski 21/01

Respostas:


97

Para uso interativo, você pode usar alsamixer. Para scripts (por exemplo, vinculação a combinações de teclas), dê uma olhada amixer.

alsamixer está incluído por padrão na maioria dos sistemas.


Para definir o volume principal, use:

# Gets a list of simple mixer controls
$ amixer scontrols 

Em seguida, defina-o no volume desejado, como um exemplo

$ amixer sset 'Master' 50%

11
Qual é a diferença entre "sset" e apenas "set". (Eu tentei tanto, e tanto trabalho)
Venryx

@Venryx man amixersugere que eles sejam equivalentes e que "s" em "sset" seja "simples". Há também um "cset" que define o conteúdo do controle do cartão.
Matthias Braun

42

Encontrado no arquivo de configuração do Openbox rc.xml:

# increase by 3%
amixer -q sset Master 3%+

# decrease by 3%
amixer -q sset Master 3%-

# mute/unmute
amixer -q sset Master toggle

amixer A página de manual pode fornecer mais detalhes.


21

Se o seu sistema estiver usando, pulseaudiovocê pode usar pactl:

pactl set-sink-volume 0 +15%

ou

pactl set-sink-volume 0 -5dB

embora você também possa especificar um número inteiro ou um fator linear:

set-sink-volume SINK VOLUME [VOLUME ...]
          Set the volume of the specified sink (identified by its symbolic name or numerical index). VOLUME can be speci‐
          fied as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a
          decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume  adjustment  will  be
          relative to the current sink volume. A single volume value affects all channels; if multiple volume values are
          given their number has to match the sink's number of channels.

2
Nota do wiki do arch linux : os pactlcomandos que recebem argumentos de porcentagem negativos falharão com um erro de 'opção inválida'. Use o --pseudo-argumento padrão do shell para desativar a análise de argumentos antes do argumento negativo. por exemplopactl set-sink-volume 1 -- -5%
Jamie Cockburn

2
@ JamieCockburn - Não tenho certeza de quando foi escrito, mas uso o archlinux e não há absolutamente nenhuma necessidade de --valores negativos adicionais (porcentagem, db, números inteiros ... todos funcionam bem). De fato, é exatamente o oposto : se eu usar de --acordo com o wiki, por exemplo pactl set-sink-volume 1 -- -3% , recebo Invalid volume specification.
don_crissti

Deve ser dependente do shell então? Estou no ubuntu 14.04, com o Xfce, e executando o comando a partir do bash (4.3.11). Se eu omitir --, recebo uma opção inválida.
Jamie Cockburn

11
@ JamieCockburn - Eu não acho que o shell seja relevante (para o registro, funciona bem para mim com ambos bashe zsh). Provavelmente, versões anteriores pactltiveram esse problema e a montante provavelmente o corrigiu (estou usando a versão 6.0).
don_crissti

11
@JamieCockburn estou executando o ubuntu 16.04 xfce bash e funciona perfeitamente sem "-", apenas uma observação.
Reishin

9

Eu sei que isso é antigo. Como o Alsa e o pulseaudio são tão conectados, esta resposta do askubuntu me ajudou a gerenciar o volume do som principal e do HDMI:

aumentar volume

amixer -q -D pulse sset Master 10%+

diminuir volume

amixer -q -D pulse sset Master 10%-

alternar mudo

amixer -q -D pulse sset Master toggle

Outros comandos amixer sset também funcionam.




4

você também pode tentar pamixer, um projeto recente que faz exatamente o que você deseja. Está no repositório do ArchLinux AUR com o mesmo nome.


é ainda no repositório da comunidade agora
Michal Polovka
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.