Respostas:
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%
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.
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.
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%
--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.
--, recebo uma opção inválida.
bashe zsh). Provavelmente, versões anteriores pactltiveram esse problema e a montante provavelmente o corrigiu (estou usando a versão 6.0).
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.
Estes são "mais naturais para o ouvido humano".
Para obter o mestre nas unidades alsamixer, use:
amixer -M get Master
Para aumentar o volume em 5% nas unidades alsamixer, por exemplo:
amixer -M set Master 5%+
No OS X, use o seguinte:
# highest
osascript -e "set Volume 7"
# lowest
osascript -e "set Volume 1"
# middle
osascript -e "set Volume 3.5"
Você pode até definir o volume para outros níveis fracionários:
# 25%
osascript -e "set Volume 1.75"
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.
amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }'aumentar o nível de volume principal em 10%:amixer -q sset Master 10%+