Minha intenção é disparar um script quando meus fones de ouvido forem conectados ao meu PC. Primeiramente, para verificar se tal evento foi realmente detectado, corri acpi_listen
e tentei conectar/desconectar os fones de ouvido algumas vezes. Aqui está a saída que deu:
jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug
Então, estou assumindo que o evento foi capturado corretamente. O que fiz então foi criar um novo evento chamado jack-headphone
under /etc/acpi/events
e preenchê-lo com o seguinte conteúdo:
event=jack/headphone
action=/etc/acpi/jack-headphone.sh %e
Por fim, criei o script real ( /etc/acpi/jack-headphone.sh
) que gostaria de executar sempre que conectar/desconectar meus fones de ouvido e tornei-o executável usando
sudo chmod +x /etc/acpi/jack-headphone.sh
Esta é a aparência do script real:
#!/bin/bash
set -e -u
if [ "$1" = "jack/headphone" -a "$2" = "HEADPHONE" ]; then
case "$3" in
plug)
pacmd set-source-port 1 analog-input-headset-mic
;;
unplug)
pacmd set-source-port 1 analog-input-internal-mic
;;
esac
fi
O comando pacmd set-source-port 1 analog-input-headset-mic
define o microfone dos fones de ouvido como entrada padrão, enquanto pacmd set-source-port 1 analog-input-internal-mic
faz o mesmo com o microfone interno. O que acontece é que se eu executar esses comandos em um terminal, eles se comportarão conforme o esperado, trocando a entrada padrão pela apropriada. No entanto, quando eu conecto/desconecto meus fones de ouvido e o script jack-headphone.sh
é acionado, a entrada padrão não é modificada de acordo. Como isso é possível?
Estou faltando alguma coisa ou fazendo algo errado aqui? Para constar, estou usando o Ubuntu 18.04