Jaki kod jest wykonywany po odłączeniu słuchawek?


Odpowiedzi:


9

W większości systemów, jeśli nie wszystkie, ACPI może obsłużyć to zdarzenie. Aby to sprawdzić:

  1. Biegać acpi_listen
  2. Odłącz i ponownie podłącz słuchawki, przykładowe wyjście: (mikrofon / uszy współdzielą to samo gniazdo w moim laptopie)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. umieścić your-script.shw/etc/acpi/

  4. Dodaj plik wyzwalacza zdarzenia dla skryptu w /etc/acpi/events/

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

    Sprawdź inne pliki, z których możesz się uczyć.

  5. Może być konieczne ponowne uruchomienie acpidusługi, aby ponownie załadować zmienione reguły w/etc/acpi/events/

    sudo service acpid restart
    

Odniesienie: man acpid


Teraz muszę tylko dowiedzieć się, jak sprawić, by dbus działał na podstawie skryptów ACPI, ale to inne pytanie.
int_ua

2
@int_ua musisz zapisać DBUS_SESSION_BUS_ADDRESSzmienną środowiskową do pliku w swoim katalogu głównym za pomocą skryptu uruchomionego ~/.config/autostart/dbus.desktop. Następnie można uruchomić su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."z/etc/acpi/your-script.sh
Germar

Hej, napisałem skrypt pokazujący powiadomienie. Postępował dokładnie tak, jak powiedziałeś. Mój skrypt wykonuje powiadomienie o wysłaniu „Słuchawki podłączone” po zdarzeniu wtyczki. Ale wydaje się, że to nie działa. askubuntu.com/questions/877804/…
thewebjackal

1

Obecna wersja skryptu zawiera teraz sleep 0.25polecenie.

sleepjest oparty na zegarze, więc nie używa żadnych cykli przetwarzania podczas snu…

Używa bardzo małej ilości procesora do skonfigurowania timera, ale sleep 1(spać 1 sekundę), sleep 60(spać przez minutę) i sleep 86400(spać przez jeden dzień) wszystkie używają tej samej liczby cykli procesora.

Korzystanie z ACPI jest jednak idealnym rozwiązaniem, ponieważ ACPI jest sterowane zdarzeniami zamiast odpytywania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.