Какой код выполняется при отключении наушников?


Ответы:


9

В большинстве систем, если не во всех, ACPI может обработать это событие. Чтобы проверить это:

  1. Запустить acpi_listen
  2. Отключите и снова подключите наушники, пример вывода: (микрофон / уши находятся в одном разъеме на моем ноутбуке)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. Положить your-script.shв/etc/acpi/

  4. Добавьте файл триггера событий для вашего скрипта в /etc/acpi/events/

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

    Проверьте другие файлы там, чтобы учиться.

  5. Возможно, вам придется перезапустить acpidслужбу, чтобы перезагрузить измененные правила в/etc/acpi/events/

    sudo service acpid restart
    

Ссылка: man acpid


Теперь мне просто нужно выяснить, как заставить работать dbus из сценариев ACPI, но это другой вопрос.
int_ua

2
@int_ua вам нужно записать DBUS_SESSION_BUS_ADDRESSпеременную окружения в файл в вашем домашнем каталоге с помощью скрипта, с которого начинается ~/.config/autostart/dbus.desktop. Тогда вы можете бежать su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."от/etc/acpi/your-script.sh
Джермар

Привет, я написал скрипт, чтобы показать уведомление. В точности следовал тому, что вы сказали. Мой скрипт выполняет уведомление-отправку «Наушники подключены» при подключении события. Но это, кажется, не работает. askubuntu.com/questions/877804/…
thewebjackal

1

Текущая версия вашего скрипта теперь содержит sleep 0.25команду.

sleepявляется таймер на основе так не использует какие - либо обработку циклов во время сна ...

Для установки таймера он использует крошечный процессор, но sleep 1(в режиме ожидания 1 секунда), sleep 60(в режиме ожидания в течение минуты) и sleep 86400(в режиме ожидания в течение дня) все используют одинаковое количество циклов ЦП.

Однако использование ACPI является идеальным решением, так как ACPI управляется событиями, а не опросами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.