¿Qué código se ejecuta cuando se desconectan los auriculares?

Respuestas:

9

En la mayoría de los sistemas, si no en todos, ACPI puede manejar este evento. Para probar eso:

  1. correr acpi_listen
  2. Desenchufe y vuelva a enchufar los auriculares, salida de ejemplo: (el micrófono / los oídos comparten el mismo conector de mi computadora portátil)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. Poner your-script.shen/etc/acpi/

  4. Agregue un archivo desencadenante de evento para su script en /etc/acpi/events/

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

    Verifique los otros archivos allí para aprender.

  5. Es posible que deba reiniciar el acpidservicio para volver a cargar las reglas modificadas en/etc/acpi/events/

    sudo service acpid restart
    

Referencia: man acpid

user.dz
fuente
Ahora solo tengo que averiguar cómo hacer que dbus funcione a partir de scripts ACPI, pero esa es una pregunta diferente.
int_ua
2
@int_ua necesita escribir la DBUS_SESSION_BUS_ADDRESSvariable de entorno en un archivo en su homedir con un script iniciado ~/.config/autostart/dbus.desktop. Entonces puedes huir su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."de/etc/acpi/your-script.sh
Germar
Hola, escribí un guión para mostrar una notificación. Seguí exactamente lo que dijiste. Mi script ejecuta notificar-enviar "Auriculares conectados" en el evento de conexión. Pero no parece funcionar. askubuntu.com/questions/877804/…
thewebjackal
1

La versión actual de su script ahora contiene un sleep 0.25comando.

sleepestá basado en temporizador, por lo que no utiliza ningún ciclo de procesamiento mientras duerme ...

Utiliza una pequeña cantidad de CPU para configurar el temporizador, pero sleep 1(dormir 1 segundo), sleep 60(dormir un minuto) y sleep 86400(dormir un día) todos usan el mismo número de ciclos de CPU.

Sin embargo, usar ACPI es la solución perfecta , ya que ACPI se basa en eventos en lugar de en encuestas.

Fabby
fuente