Я использую этот скрипт в качестве обходного пути:
#!/bin/bash
CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`
if [[ $CURRENT_STATE == '[on]' ]]; then
amixer set Master mute
else
amixer set Master unmute
amixer set Front unmute
amixer set Headphone unmute
fi
Перед тем, как позвонить amixer set Master mute, я сделал разницу amixer scontents, и после его вызова и отключения звука с помощью графического интерфейса, чтобы выяснить, что
Со звуком по типу amixer scontents > ~/before (вы получите файл со статусом всех звуковых каналов). Затем переключите громкость с помощью amixer set Master toggle. Создайте второй файл статуса chanel с amixer scontents > ~/after снова переключите звук с помощью amixer set Master toggle, который должен вернуть громкость на уровень до первой команды переключения. Создайте третий файл с amixer scontents > ~/afterafterТеперь у вас есть три файлы, сообщающие вам, которые сообщают вам о состоянии звуковых каналов, используемых для нормального звука, которые отключены amixer set Master toggle и которые не включаются снова, снова отключаясь с помощью той же команды.
Чтобы легко сравнить файлы и увидеть различия (приемы, которые будут отключены и не будут отключены впоследствии), вы можете использовать meld в Центре программного обеспечения. Запустите его, откройте три файла и на полосе прокрутки вы увидите, где существуют различия между файлами. Используйте найденные имена chanel, чтобы добавить их к описанному выше сценарию.