Если повесить на хоткей, делать звуку toggle через amixer, то при установленном pulseaudio звук снова не включится и включать его нужно будет через pulseaudio.
mute/unmute хоткеем, как это делается
в системе с alsa
$ amixer -c0 set Master toggle
Без указания карты, всегда дефолтная карта.
toggle звука на любой дефолтной карте в системе с alsa
$ amixer set $(amixer scontrols|head -n1|awk -F "'" '{printf $2}') toggle
в системе с pulseaudio и картами
$ LANG=C pactl list sinks|grep '^Sink\|Name'
Sink #0
Name: alsa_output.pci-0000_00_1e.2.analog-stereo
Sink #1
Name: alsa_output.usb-Logitech_Logitech_USB_Headset-00.analog-stereo
необходимо жёстко задать конкретный sink по имени (см. grep pci):
$ pactl set-sink-mute $(LANG=C pactl list sinks|grep pci|grep Name|awk -F ':' '{printf $2}') toggle
$ pactl set-sink-mute alsa_output.pci-0000_00_1e.2.analog-stereo toggle
(хуже если синков с этим pci будет два или больше, - нужно будет думать как грепнуть конкретный)
или по номеру синка
$ pactl set-sink-mute 0 toggle
иначе pactl споткнётся при отсутствии жёстко указанного имени синка или его номера, - понятия дефолтного у него нет, даже если аудиокарта одна
$ pactl set-sink-mute $(LANG=C pactl list sinks|grep Name|awk -F ':' '{printf $2}') toggle
You have to specify a sink name/index and a mute action (0, 1, or 'toggle')
$ pactl set-sink-mute toggle
You have to specify a sink name/index and a mute action (0, 1, or 'toggle')
Также учтите, что номер синка подключаемого аудиоустройства постоянно меняется при переподключении аудиоустройства:
pulseaudio это не alsa с её жёсткими и предсказуемыми номерами карт.
Поэтому более предсказуемо задавать для pactl полное имя синка, которое при разных аудиокартах всегда будет разным.