Cambiar volumen desde bash

Cambiar volumen desde bash

Llegué tan lejos (de .bashrc):

alias i="amixer -c 0 -- sset Master playback +1dB"
alias d="amixer -c 0 -- sset Master playback -1dB"
alias v4="amixer -c 0 -- sset Master playback 40%"
alias v8="amixer -c 0 -- sset Master playback 80%"

Las dos primeras filas deberían funcionar si leo la man amixerpágina correctamente y no generan un mensaje de error, pero su comportamiento no es confiable: a veces hay un gran cambio, la mayoría de las veces no sucede nada.

Las dos últimas filas funcionan. Supongo que podrías crear unos diez alias. Aún así, le gustaría que la funcionalidad de aumentar/disminuir se vincule a los atajos de teclado.

¿Estoy usando amixerel método incorrecto o hay alguna otra herramienta que pueda solucionar el problema? ( alsamixerNo parece tener esta funcionalidad como comandos CLI).

Editar

Por fin, lo hizo funcionar. Esto fue hace tanto tiempo (¡qué tristeza!), que he perdido la noción de quién contribuyó con qué. Gracias de todos modos. (Abajo: para usuarios de bash, ingrese .bashrc)

# volume
alias vol="alsamixer"
MASTER="amixer -q -c 0 sset Master playback"
alias i="$MASTER 2dB+"
alias d="$MASTER 2dB-"
alias mute="echo \" Audio muted.\"; $MASTER mute"
alias play="echo \" Audio un-muted.\"; $MASTER unmute"
alias unmute="play"
alias stop="mute"
v () {
  amixer -q sset Master playback $1%
}

Respuesta1

Para sus dos primeros alias, parece que +/- debe irdespuésel valor que debe tratarse como un cambio relativo, en lugar de un valor absoluto(página de manual de amixer):

alias i="amixer -c 0 -- sset Master playback +1db+"
alias d="amixer -c 0 -- sset Master playback +1db-"

Reemplazaría los dos últimos (y sus 8 supuestos hermanos) con una única función de shell:

v () {
  amixer -c 0 -- sset Master playback $i%
}

información relacionada