このコマンドは完成度が非常に低く、したがって部分的にしか実装され ていない。ここで説明をするのは、開発者向けのラフなプロトタイプとしてで あり、エンドユーザ向けの一般の目的に使うツールとしてではない。このよう なツールは、xev をうまく置き換えることができるかもしれない。保証は出来 ないが、これは面白いアイディアである。
xkbevd イベントデーモンは指定された XKB イベントを監視し、イベントが発生した ら要求されたコマンドを実行する。設定ファイルはイベント指定/アクション の組と変数定義からなる。
イベント指定は、短縮形の XKB イベント名に文字列または識別子を続けたも のからなる。この文字列や識別子は、括弧内にある修飾子として働く。空の括 弧は指定が無いことを示し、他のいずれのイベントにもマッチしないイベント に適用されるデフォルトのコマンドを指定する。修飾子の解釈は、イベントの タイプに依存して決まる。ベルイベントではベルの名前を使ってマッチが行わ れ、メッセージイベントではメッセージ文字列の内容によってマッチが行われ、 遅いキーイベントは press, release, accept, reject を全て受け付ける。現在のところ、これ以外には認識されるイベントは存在し ない。
アクションは、省略可能なキーワードの後に省略可能な引き数を続けて並べた ものである。現在、xkbev は次のアクションを認識する: none, ignore, echo, printEvent, sound, shell. アクションが指定されなければ、文字列は再生されるサウンドファイルの名前 として扱われる。ただし、文字列が感嘆符(!)で始まる場合に限っては、これ はシェルコマンドとして扱われる。
引き数文字列における変数定義は、引き数文字列がアクションプロセッサに渡 される前に、処理対象のイベントのフィールドを使って拡張される。変数の一 般的な記法は、$cfP または $(str) である。ここで、c は1 文字であり、str は任意の長さの文字列である。全てのパラメータは1 文字と長い名前の両方を持つ。
認識されるパラメータのリストはイベントによって変化し、ここで説明するに は長すぎる。いずれにせよ、これは開発者用リリースであり、ソースコードを 確認することが期待される(evargs.c が特に興味深いだろう)。
ignore, echo, printEvent, sound, shell アクションは、ignore, echo, printEvent, sound, shell という名前のコマンドに期待される通りの動作を行う。ただし、 sound コマンドは SGI のマシンでしか実装・テストされていない。こ れはただ外部プログラムを起動するだけなので、期待するよりも半秒ほど遅く オーディオが始まっても良い場合には特に、簡単に改造することができる。
現在認識できる変数は soundDirectory と soundCmd だけである。 変数の意味は説明しなくても読者は理解できることと思う。