Eu não sei como bloquear um controle com o ALSA ou o PulseAudio, mas esse pequeno hack deve funcionar:
stdbuf -oL alsactl monitor | \
while read; do
amixer -D pulse sset Master 0,-
done
Ele procura por mudanças de volume usando alsactl monitor
(você pode executar este comando e mudar o volume para ver o que ele faz), e toda vez que uma alteração é feita, ele redefine o volume do canal esquerdo para 0.
Talvez seja necessário alterar:
-
pulse
para outra coisa, se você estiver usando um dispositivo de áudio diferente. -
0,-
to-,0
se você quiser manter o canal certo mudo. -
Master
para algo comoSpeaker,0
se você quiser que um controle secundário (por exemplo, fones de ouvido) funcione normalmente.
Você pode fazer o script ser executado na inicialização por:
- Colocando em um arquivo, por exemplo
~/.bin/alsa-fix
, - permitindo que o arquivo seja executado:
chmod +x ~/.bin/alsa-fix
e - adicionando a linha
~/.bin/alsa-fix &
a~/.profile
.
O script não deve usar virtualmente nenhuma CPU ou RAM, mas se você quiser torná-lo ainda mais eficiente, provavelmente poderá executá-lo com dash
adicionando a linha #!/bin/dash
à parte superior do arquivo.