Xサーバーグラブを一覧表示および管理するためのコマンドラインツールは何ですか? (これは、キーとポインターのグラブのようにグラブします。つまり、特定のキーまたはマウスボタンの使用を特定のアプリケーションに制限するか、マウスポインターを特定の画面領域にとどまるように制限します。)架空のxgrab
Key 0x00f00ba5 0x123 0
Button 0x00f00ba5 2
Pointer 0x00abcdef
XGrabKey(display, 0x123, 0, 0x00f00ba5, ...)
への呼び出しがあったことを意味します など、XGrabButton
、XGrabPointer
、XGrabKeyboard
、XGrabServer
(もし可能なら)。表示形式は重要ではありません。私が欲しいのは、誰が何をつかんでいるかを確認する方法と、おそらくこれらのつかみを取り消す方法です(可能であれば、X11 APIで許可されているかどうかはわかりません)。
承認された回答:
Xの最近のバージョン(X.orgサーバー≥1.11)は、このコミットで導入されたいくつかのデバッグキーシムをサポートしています。トリガーされると、これらはグラブに関連するアクションを実行します。
デフォルトでは(少なくとも最近のバージョンでは)、これらは無効になっています(デフォルトのキーマップにはありません)。
ただし、xdotool
がある場合 インストール済み、 コマンドラインで実行することにより、それらを呼び出すことができます:
xdotool key NameOfKey
ここで、NameOfKey
アクティベートしたいkeysymです。たとえば、アクティブなグラブのリストをXサーバーログに出力するには、xdotool key XF86LogGrabInfo
を使用します。 。
関連するキーシムは次のとおりです。
- XF86LogGrabInfo :アクティブなグラブのリストをXサーバーログに出力します
- XF86Ungrab :グラブを保持しているアプリケーションを強制終了せずに、アクティブなグラブをすべて破棄します
- XF86ClearGrab :アクティブなグラブを保持しているすべてのプロセスを強制終了します
XF86LogGrabInfoに注意してください 現在押されていないキーのグラブなどのパッシブグラブではなく、アクティブグラブのみを一覧表示します。パッシブグラブに関する情報を取得する場合は、グラブをアクティブ化する必要があります。xdotool key XF86LogGrabInfo
を実行します。 目的のキーコードまたはマウスボタンの組み合わせが押されている間。次のようなことをします:
-
sleep 1; xdotool key XF86LogGrabInfo
- 1秒以内に、キーコードまたはマウスボタンの組み合わせを押します。
- 1秒後、キー/ボタンを放します。
- Xサーバーログ(多くの場合、
/var/log/Xorg.0.log
)の「Activegrab…」情報を確認します 。