ヘッドフォンが切断されたときにどのコードが実行されますか?


回答:


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


ACPIスクリプトからdbusを動作させる方法を見つける必要があるだけですが、それは別の問題です。
int_ua

2
@int_uaでDBUS_SESSION_BUS_ADDRESS始まるスクリプトを使用して、environ変数をhomedir内のファイルに書き込む必要があります~/.config/autostart/dbus.desktop。次に、あなたが実行することができますsu YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."から/etc/acpi/your-script.sh
Germar

ねえ、私は通知を表示するスクリプトを書きました。あなたが言ったことを正確にフォローしました。私のスクリプトは、プラグイベントで通知送信「ヘッドフォンが接続されました」を実行します。しかし、それは動作していないようです。askubuntu.com/questions/877804/...
thewebjackal

1

現在のバージョンのスクリプトにはsleep 0.25コマンドが含まれています。

sleepタイマーベースではそれほど使用しないで任意の寝ている間の処理サイクルを...

非常に小さなCPUを使用してタイマーを設定しますが、sleep 1(1秒間スリープ)、sleep 60(1 分間スリープ)、(1 sleep 86400日間スリープ)すべて同じCPUサイクルを使用します。

ただし、ACPIはポーリング駆動ではなくイベント駆動であるため、ACPIの使用完璧なソリューションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.