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 amixer
sugere 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, pulseaudio
você 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.
pactl
comandos 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.
bash
e zsh
). Provavelmente, versões anteriores pactl
tiveram 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%+