Qual código é executado quando os fones de ouvido são desconectados?


Respostas:


9

Na maioria dos sistemas, se não em todos, o ACPI pode manipular esse evento. Para testar isso:

  1. Corre acpi_listen
  2. Desconecte e reconecte fones de ouvido, exemplo de saída: (microfone / orelhas compartilham o mesmo conector no meu laptop)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. Coloque your-script.shem/etc/acpi/

  4. Adicione um arquivo de acionador de eventos para seu script em /etc/acpi/events/

    event=jack/headphone HEADPHONE unplug
    action=/etc/acpi/your-script.sh
    

    Verifique os outros arquivos lá para aprender.

  5. Pode ser necessário reiniciar o acpidserviço para recarregar as regras alteradas em/etc/acpi/events/

    sudo service acpid restart
    

Referência: man acpid


Agora só preciso descobrir como fazer o dbus funcionar com scripts ACPI, mas essa é uma pergunta diferente.
Int_ua

2
@int_ua, você precisa escrever a DBUS_SESSION_BUS_ADDRESSvariável de ambiente em um arquivo em sua propriedade com um script iniciado ~/.config/autostart/dbus.desktop. Então você pode executar a su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."partir de/etc/acpi/your-script.sh
Germar

Ei, escrevi um script para mostrar uma notificação. Seguiu exatamente o que você disse. Meu script executa o envio de notificação "Fones de ouvido conectados" no evento plug. Mas parece que não funciona. askubuntu.com/questions/877804/…
thewebjackal 02/02

1

A versão atual do seu script agora contém um sleep 0.25comando.

sleepé baseado em timer, portanto, não usa nenhum ciclo de processamento enquanto dorme ...

Ele usa um pouquinho muito pequeno de CPU para configurar o timer, mas sleep 1(espera 1 segundo), sleep 60(espera por um minuto) e sleep 86400(espera por um dia), todos usam o mesmo número de ciclos de CPU.

No entanto, o uso da ACPI é a solução perfeita , pois a ACPI é orientada a eventos, em vez de orientada por pesquisas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.