Lautstärke von Bash aus ändern

Lautstärke von Bash aus ändern

Ich bin so weit gekommen (von .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%"

Die ersten beiden Zeilen sollten funktionieren, wenn ich die man amixerSeite richtig lese, und sie erzeugen keine Fehlermeldung, aber ihr Verhalten ist unzuverlässig: Manchmal gibt es eine große Änderung, meistens passiert nichts.

Die letzten beiden Zeilen funktionieren. Ich schätze, Sie könnten etwa zehn Aliase erstellen. Trotzdem möchten Sie, dass die Funktion zum Erhöhen/Verringern an Tastaturkürzel gebunden wird.

Benutze ich amixeres falsch oder gibt es ein anderes Tool, mit dem sich der Trick bewerkstelligen lässt? ( alsamixerscheint diese Funktionalität als CLI-Befehle nicht zu haben.)

Bearbeiten

Endlich hat es geklappt. Das ist so lange her (wie traurig!), dass ich den Überblick darüber verloren habe, wer was beigetragen hat. Trotzdem danke. (Unten: Für Bash-Benutzer geben Sie ein .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%
}

Antwort1

Für Ihre ersten beiden Aliase scheint das +/- weg sein zu müssennachder Wert soll als relative Änderung behandelt werden, statt als absoluter Wert(Manpage von amixer):

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

Ich würde die letzten beiden (und ihre 8 angenommenen Brüder) durch eine einzige Shell-Funktion ersetzen:

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

verwandte Informationen