キーボードショートカットをキャプチャする方法

キーボードショートカットをキャプチャする方法

端末(X11の下)で実行され、キーボードショートカット(デスクトップ環境のどこでも発生する)を待ち、対応するショートカット(またはキーシーケンス)が発生すると、終了してコード= 0を返すスクリプトが必要です。

PS:byzanzにデスクトップ録画をいつ停止するかを知らせるには、これが必要です。

このスクリプトに使用できる候補はですが、どのように組み合わせるべきxevかわかりません。xinputつまり。xinput有望に見えますが、自動的に発生したいデバイスを指定することができ、出力のシーケンスが見つかったら終了するスクリプトでそれを使用する方法がわかりません。

ベストアンサー1

xinput test-xi2 --rootすべてのソースからイベントをキャプチャします。セクションにキーコードが含まれているRawKeyPressKeyPressおよび4つのイベントを受け取ります。生のイベントを使用する必要があるかどうかはわかりませんが、マウスイベントを聞くときに他のプログラムで使用する場合に備えて、生のイベントに依存する必要があります(RawKeyReleaseKeyReleasedetail:owner_events = 1XキャッチポインタまたはXIGrabデバイス) したがって、修飾子を追跡するためにXserverが必要でない限り、rawイベントを使用することをお勧めします。

私はキーボードとマウスイベントをキャプチャするプログラムを書いたことがあります。https://github.com/pzmarzly/x11-input-mirror

編集:私のテストでは、rawイベントはキーボードイベントとは対照的に動作します。したがって、最高の成功率を得るには、ネイティブマウスイベントをキャプチャしますが、ネイティブではないキーボードイベントをキャプチャしないでください。

おすすめ記事