web-dev-qa-db-ja.com

クリックイベントとキーボードイベントの詳細を確認する

Linux用のProblem Steps Recorderに代わるものはあまりないことに気付いたので、シェルスクリプトで作成しようとしています。

  1. マウスが好評になるまで待つ/検出するにはどうすればよいですか?この時点でスクリーンショットを撮りたいです。
  2. マウスがクリックしたボタンまたは入力フィールドの説明を見つけるにはどうすればよいですか? Problem Steps Recorderはユーザーが「ウィンドウを閉じる」を左クリックする「X」をクリックした場合、またはユーザーが「閉じる」を左クリックするを返します「閉じる」ボタン。
  3. キーが押されるまで待機/検出し、どのキーを見つけることができますか?
3
Nonny Moose

xinput --test-xi2 --rootコマンドman xinputを使用できます。ここで、test-xi2は入力デバイスのロギングを意味します、および--rootは、いわゆるルートウィンドウ(x11固有の概念)からログを記録することです。システムでいつどのキーが押されたか、マウスのクリック、さらにはマウスのモーション座標が表示されます。 1および3ポイントを解決します。これらのイベントを解析するだけです。

2ポイントはより複雑です。 (dis)ウィンドウの表示、フォーカスの開始/終了など、システム内のすべてのXイベントを監視するxev -rootコマンドを使用できます特定のウィンドウなどの出力。あなたはその出力を解析し、何が起こっているのか人間が読める説明を表示する必要があります。ところで、コマンドは押されたキーも記録します。

警告:明らかに、それはXorgが作成された時代にさかのぼる大きなセキュリティホールであり、誰も気にする必要はありませんでした。このため、最近X11はWaylandプロトコルに置き換えられています(本質的にはX12ですが、後方互換性がないため、プロトコルは別の方法で呼ばれます)、どのWMがATMを実装しているか。プロトコルがWMにmuchを要求するため、迅速なプロセスではありませんが、Fedora 25は最終的にデフォルトでWaylandセッションを有効にしているようです。 KWinも追いついています。そして、スクリプトはWaylandで動作しません。これはあなたがそれをできないという意味ではありません—私はあなたができると思います。ただし、特定のDEの特定のWMと密接に連携する必要があり、スクリプトはスタンドアロンのbashスクリプトではなく、WMのアドオンになります。

5
Hi-Angel