Establecer volumen desde terminal

83

¿Es posible configurar el volumen de audio usando el terminal en lugar de hacer clic en el icono del altavoz en la barra superior?

La razón por la que quiero hacer esto es que mi teclado no tiene botones de aumento / disminución de volumen y me resulta molesto alcanzar el mouse.

Tristiano
fuente
1
Lea el nivel de volumen maestro en porcentaje numérico 0% -100%: amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }'amixer -q sset Master 10%+
aumente el

Respuestas:

97

Para uso interactivo que puede usar alsamixer. Para las secuencias de comandos (por ejemplo, vinculación a combinaciones de teclas), eche un vistazo amixer.

alsamixer se incluye por defecto en la mayoría de los sistemas.


Para configurar el uso del volumen maestro:

# Gets a list of simple mixer controls
$ amixer scontrols 

Luego ajústelo al volumen deseado, como ejemplo

$ amixer sset 'Master' 50%
Renan
fuente
1
¿Cuál es la diferencia entre "sset" y solo "set"? (
Probé
@Venryx man amixersugiere que son equivalentes y que la "s" en "sset" significa "simple". También hay un "cset" que establece el contenido de control de la tarjeta.
Matthias Braun
42

Encontrado en el archivo de configuración de 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 La página del manual puede dar más detalles.

enzotib
fuente
21

Si su sistema está usando pulseaudio, puede usar pactl:

pactl set-sink-volume 0 +15%

o

pactl set-sink-volume 0 -5dB

aunque también podría especificar un número entero o un factor lineal:

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.
don_crissti
fuente
2
Nota de arch linux wiki : los pactlcomandos que toman argumentos de porcentaje negativo fallarán con un error de 'opción no válida'. Use el --pseudo argumento de shell estándar para deshabilitar el análisis de argumentos antes del argumento negativo. por ejemplopactl set-sink-volume 1 -- -5%
Jamie Cockburn
2
@JamieCockburn: no estoy seguro de cuándo se escribió eso, pero uso archlinux y no hay absolutamente ninguna necesidad de --valores adicionales con valores negativos (porcentaje, db, enteros ... todos funcionan bien). De hecho, es todo lo contrario : si uso --según el wiki, por ejemplo pactl set-sink-volume 1 -- -3% , obtengo Invalid volume specification.
don_crissti
¿Debe ser dependiente de la cáscara entonces? Estoy en ubuntu 14.04, con Xfce, y ejecuto el comando desde bash (4.3.11). Si omito el --, obtengo una opción no válida.
Jamie Cockburn
1
@JamieCockburn - No creo que el shell sea relevante (para el registro, funciona bien para mí con ambos bashy zsh). Probablemente las versiones anteriores de pactltenían este problema y lo más probable es que lo resolviera (estoy usando la versión 6.0).
don_crissti
1
@JamieCockburn estoy ejecutando ubuntu 16.04 xfce bash, y funciona perfectamente sin "-", solo una nota.
Reishin
9

Sé que este es viejo. Dado que Alsa y pulseaudio están tan conectados, esta respuesta de askubuntu me ayudó a administrar el volumen tanto de mi sonido principal como del HDMI:

aumenta el volumen

amixer -q -D pulse sset Master 10%+

bajar volumen

amixer -q -D pulse sset Master 10%-

alternar silencio

amixer -q -D pulse sset Master toggle

Otros comandos sset de amixer también funcionan.

Mathter
fuente
7

Estos son "más naturales para el oído humano".

Para obtener el maestro en las unidades alsamixer, use:

amixer -M get Master

Para subir el volumen en un 5% en las unidades alsamixer, por ejemplo:

amixer -M set Master 5%+

https://bbs.archlinux.org/viewtopic.php?id=135348

Robson
fuente
6

En OS X use lo siguiente:

# highest
osascript -e "set Volume 7"
# lowest
osascript -e "set Volume 1"
# middle
osascript -e "set Volume 3.5"  

Incluso puede configurar el volumen a otros niveles fraccionarios:

# 25%
osascript -e "set Volume 1.75"
1 ''
fuente
@Wildcard los botones de volumen de Mac solo están en incrementos de 0.25
1 ''
4

También puedes probar pamixer, un proyecto reciente que hace exactamente lo que quieres. Está en el repositorio ArchLinux AUR con el mismo nombre.

fradeve
fuente
incluso está en el repositorio de la comunidad ahora
Michal Polovka