tail head cat sleep
QR code linking to this page

manページ  — USBHIDACTION

名称

usbhidaction – USB の HID コントロールにしたがってアクションを実行する

内容

書式


usbhidaction [-diev] -c config-file -f device [-p pidfile] arg ...

解説

usbhidaction ユーティリティは、特定の値が HID コントロールに現れた時に コマンドを実行するのに使用されます。 このプログラムの通常の動作は、設定ファイルの読み込み後にデーモンとなり、 HID の項目に指定された通りにコマンドを実行します。 HID デバイスからの読み込みが失敗した場合、プログラムは終了します。 つまり USB デバイスが抜かれた場合にも、プログラムは終了するということです。

オプションは以下の通りです:
-d
  デーモンになるかどうかのフラグをトグルさせます。
-e
  usbhidaction がすぐ終了するように指示します。 これは、複数の冗長オプションをつけた時に、 どのようにファイルが解釈されるかを確認するのに便利です。
-i
  設定ファイルに記述されているが、デバイスに存在しない HID 項目を無視します。
-v
  出力を冗長にします。 デーモンにはなりません。
-c config-file
  設定ファイルのパス名を指定します。
-f device
  作動対象のデバイスのパス名を指定します。 device が数字の場合は、USB HID デバイス番号とみなします。 相対パスの場合は、 /dev 以下のデバイスの名前とみなします。 絶対パスの場合は、そのままデバイスのパス名とみなします。
-p pidfile
  プロセス ID を格納する別のファイル名を指定します。

プロセスが SIGHUP シグナルを受け取とると、設定ファイルが再び読み込まれます。

設定

設定ファイルは、非常に単純な形式をしています。 各行はアクションを記述しています。 空白で始まる行は、前の行からの継続とみなされます。 ‘#’ で始まる行は、コメントとみなされます。

各行は 4 つの部分で構成されます。 それは USB HID の項目名、その項目の値、デバウンス値、アクションです。 それぞれの部分は、空白で区切られます。

項目名は usbhidctl(1) で用いられるものと同様のものですが、 それぞれの部分にはそのページ名が前につけられます。

項目の値は、単なる数値です。 その項目がこの値を示した時に、アクションが実行されます。 この値が ‘*’ の場合は、すべての値にマッチします。

デバウンス値は、非負の整数です。 値 0 は、デバウンスしないことを示します。 値 1 は、状態が変化した時のみアクションを実行します。 値が 2 以上の場合は、項目の値がこの量だけ変化した時にのみ実行されます。

アクションは、 system(3) で実行される通常のコマンドです。 コマンドが実行される前に、いくつかの置換が行われます。 ‘$n’ は、コマンドライン上の n 番目の引数に置き換えられます。 ‘$V’ は、HID 項目の数値に置き換えられます。 ‘$N’ はコントロール名に置き換えられ、 ‘$H’ は HID デバイス名に置き換えられます。

関連ファイル

/usr/share/misc/usb_hid_usages
  HID の使用法テーブル
/var/run/usbaction.pid デフォルトの PID ファイルの場所

使用例

以下の設定ファイルは、スピーカに HID コントロールを持つ 1 組の Philips USB スピーカを制御するのに使われます。
# 様々な Philips USB スピーカ用の設定
Consumer:Volume_Up                       1 0 mixer -f $1 vol +1
Consumer:Volume_Down                     1 0 mixer -f $1 vol -1
# mute は未サポート
#Consumer:Mute                           1 0 mixer -f $1 mute
Consumer:Channel_Top.Microsoft:Base_Up   1 0 mixer -f $1 bass +1
Consumer:Channel_Top.Microsoft:Base_Down 1 0 mixer -f $1 bass -1

この設定を使用した起動例は次のようになります。

    usbhidaction -f /dev/uhid1 -c conf /dev/mixer1

以下は、Logitech Wingman でミキサボリュームを制御する例です。 ボタンに対するデバウンス値は 1 で、スライダに対する値は 5 であることに 注意してください。

Button:Button_1   1 1   mixer vol +10
Button:Button_2   1 1   mixer vol -10
Generic_Desktop:Z * 5   mixer vol `echo $V | awk '{print int($$1/255*100)}'`

関連項目

usbhidctl(1), usbhid(3) [英語], uhid(4) [英語], usb(4) [英語]

歴史

usbhidaction コマンドは NetBSD ではじめて登場しました。 usbhidaction コマンドは FreeBSD 5.1 で登場しました。

USBHIDACTION (1) April 9, 2003

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.
— Jamie Zawinski