Изменить громкость с bash

Изменить громкость с bash

Я зашел так далеко (от .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%"

Первые две строки должны работать, если я man amixerправильно прочитал страницу, и они не выдают сообщение об ошибке, но их поведение ненадежно: иногда происходят огромные изменения, чаще всего ничего не происходит.

Последние две строки работают. Думаю, можно сделать около десяти псевдонимов. Тем не менее, вы хотели бы привязать функциональность увеличения/уменьшения к сочетаниям клавиш.

Я использую amixerнеправильный способ или есть какой-то другой инструмент, который может сделать то же самое? ( alsamixerПохоже, такой функциональности, как команды CLI, у него нет.)

Редактировать

Наконец-то, заставил это работать. Это было так давно (как грустно!), что я потерял счет тому, кто что внес. В любом случае, спасибо. (Ниже: для пользователей bash введите .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%
}

решение1

В ваших первых двух псевдонимах, похоже, +/- должны быть удаленыпослезначение следует рассматривать как относительное изменение, а не как абсолютное значение(страница руководства amixer):

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

Я бы заменил последние две (и их 8 предполагаемых собратьев) одной функцией оболочки:

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

Связанный контент