Beim Auftreten eines ACPI-Ereignisses kann kein Skript gestartet werden.

Beim Auftreten eines ACPI-Ereignisses kann kein Skript gestartet werden.

Ich möchte ein Skript starten, wenn ich meine Kopfhörer an meinen PC anschließe. Um zu prüfen, ob dieses Ereignis tatsächlich erkannt wird, habe ich zunächst versucht, acpi_listendie Kopfhörer ein- und auszustecken. Hier ist die Ausgabe:

jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug

jack-headphoneIch gehe also davon aus, dass das Ereignis ordnungsgemäß abgefangen wird. Ich habe dann ein neues Ereignis namens „ under“ erstellt /etc/acpi/eventsund es mit folgendem Inhalt gefüllt:

event=jack/headphone
action=/etc/acpi/jack-headphone.sh %e

Schließlich habe ich das eigentliche Skript ( /etc/acpi/jack-headphone.sh) erstellt, das ich ausführen möchte, wenn ich meine Kopfhörer anschließe/abziehe, und es dann ausführbar gemacht mit

sudo chmod +x /etc/acpi/jack-headphone.sh 

So sieht das eigentliche Skript aus:

#!/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

Der Befehl pacmd set-source-port 1 analog-input-headset-miclegt das Mikrofon der Kopfhörer als Standardeingang fest, während pacmd set-source-port 1 analog-input-internal-micer dasselbe mit dem internen Mikrofon macht. Wenn ich solche Befehle in einem Terminal ausführe, verhalten sie sich wie erwartet und schalten den Standardeingang auf den entsprechenden um. Wenn ich jedoch meine Kopfhörer anschließe/abziehe und das Skript jack-headphone.shausgeführt wird, wird der Standardeingang nicht entsprechend geändert. Wie ist das möglich?

Habe ich hier etwas übersehen oder falsch gemacht? Der Vollständigkeit halber sei erwähnt, dass ich Ubuntu 18.04 verwende.

verwandte Informationen