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.

“ If you have a problem and you think awk(1) is the solution, then you have two problems. ”
— David Tilbrook