2011-12-09 14 views
1

Linuxの場合、xbindkeysと呼ばれるちょっとしたライブラリがあります。驚くべきことに、あなたが選んだコマンドを特定のキーの組み合わせにバインドします。Linuxシステムイベントへのバインド

私はシステムハードウェアイベントを除いて同様のものを探しています。ヘッドフォンをコンピュータの出力端子に接続すると、プログラムを呼びたいと思っています。また、ヘッドフォンのプラグを外したときにイベントにバインドすることもできれば便利です。

これが可能かどうかは誰にも分かりますか?おそらく、いくつかのクールなPython X11ライブラリを通して?

ありがとうございます。

EDIT:ジャック抽象化レイヤーのAPIが見つかりました。http://www.alsa-project.org/~tiwai/alsa-driver-api/ch06s02.html 悲しいことに、これは悲しいことですが、これはイベントハンドラーではなくデバイスのポーリングのみを許可します。

答えて

3

おそらくudevを使用します。私はlibudevを使用していないが、ここでsomething I foundです:

libudev - 監視インタフェース

libudevも監視インタフェースを提供します。監視インターフェイス は、デバイスのステータスが変更されたときにアプリケーションにイベントを報告します。 これは、デバイスが に接続されているか、システムから切断されている場合に通知を受信するのに便利です。

アクションは、以下の文字列として返されます。

  • アドオン - デバイスがシステム
  • 削除するために接続されている - デバイスがシステム
  • 変化から切断されている - 何かをについてデバイスが変更されました
  • 移動 - デバイスノードが移動、名前変更、または再親子化されました

その記事では、それはselect経由udev_monitor_get_fd、それ以降のモニターを経由してファイルディスクリプタを取得する方法を示すことになります。

関連する問題