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 現在押されていないキーのグラブなどのパッシブグラブではなく、アクティブグラブのみを一覧表示します。パッシブグラブに関する情報を取得する場合は、グラブをアクティブにする必要があります。目的のキーコードまたはマウスボタンの組み合わせを押しながら、xdotool key XF86LogGrabInfo
を実行します。次のようなことを行います。
sleep 1; xdotool key XF86LogGrabInfo
を実行します/var/log/Xorg.0.log
)の「アクティブグラブ…」情報を確認します。パッシブグラブの手元にあるものは何も知りません1 存在する可能性のある単一のキーまたはボタンの例ですが、キーボードまたはマウスデバイス全体のアクティブなグラブを一覧表示する方法はいくつかあります。
/usr/demo/Xserver/mdb/list_Xserver_devicegrab_client
などのデバッガスクリプトを使用します。サーバー。 Xorg1.11ホットキーが現在カバーしていないサーバーグラブ用のものもここにあります。1 アクティブグラブとパッシブグラブの定義については、 http://tronche.com/gui/x/xlib/input/pointer-grabbing.html を参照してください。
これは機械式カタツムリの答えへの追加です-
Xorgログのエントリはかなり判読できません。私はそれらを解析し、人間が扱いやすい形で提示するプログラムを書きました。
https://Gist.github.com/CyberShadow/6412d11aea64144f8905cc0b8196f38e
使用するには、最初にxdotool key XF86LogGrabInfo
を実行します。機械のカタツムリの答えで説明されています。次に、上記のリンク先のプログラムを実行します。 Xorgログファイルが/var/log/Xorg.0.log
にない場合は、--xorg-log
オプションを使用してその場所を指定できます。詳細については、--help
を参照してください。