Waylandをクリックしてウィンドウを識別する方法


15

Waylandでウィンドウが属しているプロセスを特定したいと思います。xpropユーザーがクリックしてウィンドウを選択し、PIDを含むすべてのウィンドウの詳細を出力できるXのようなものはありますか?


私は、xpropのようなコマンドが存在すること、または今後存在することを疑います。Waylandの主な目標の1つは、他のプロセスのウィンドウへのアクセスを制限することです。
mviereck

@mviereck確かに、スーパーユーザーはWaylandでもウィンドウ情報を見ることができましたか?
ナサニエルM.ビーバー

@bariumbitmap:コンポジターがこれらの情報を独自のメモリーの外部、たとえばファイルやAPIを介して提供する場合のみ。私はそのような仕様を知りません(しかし、存在するかもしれません)。もちろん、すべてのコンポジターに一般的なソリューションが必要ない場合は、westonのようなコンポジターをフォークして、自分で実装することもできます。
mviereck

どうしてxprop?XWaylandを介してウィンドウ上に非常に多くの詳細が表示されます_NET_WM_PID(CARDINAL)。これには、発信元プロセスPIDが含まれます。
-istepaniuk

回答:


1

幸いなことに、Gnome Shellにはこのようなものが組み込まれてxpropおり、Xorg Wayland との連携とは異なります。最終的には、KDE、i3などを使用している場合、他のツールの領域に分類される可能性があります。

まず、キーボードの「ALT + F2」キーを入力すると、次のようなメニューが表示されます。

alt ft

その後、コマンドを発行しますlg( "looking glass"の場合)。

これにより、見栄えの良いガラスウィンドウが表示され、そこからウィンドウ情報を抽出できます。見ているガラスの右上隅から「ウィンドウ」を選択します。

窓セクション

そこから、ウィンドウのリストが表示され、そこから識別したいウィンドウの名前をクリックできます。

リスト

この場合、例としてgeditを選択しました。

黙想する

その出力の一番上の行に気づくかもしれません:

Inspecting object: object instance proxy GType: MetaWindowX11 ...`

「GType」はMetaWindowX11またはMetaWindowWaylandのいずれかになります。

この情報はhttps://fedoraproject.org/wiki/How_to_debug_Wayland_problemsに記載されています

しました


3
リストされたウィンドウを実行しているプロセスのPIDを見つけることができますか?
ツェルニー

0

プロトコル拡張のドラフトxdg-foreignがありwl_surface、他のWaylandクライアントによって作成されたのハンドルを取得できます。ハンドルがあれば、クライアントの表面から取得できるものなら何でも取得できます。ただし、このプロトコルにはまだ制限があります。

  • 明らかに、クライアントに実装されていないと機能しません。
  • それお互いを知っているクライアントをターゲットにしているので、それをトリガーする方法を提供しません:あなたのクライアントは何らかの方法で外部クライアントと通信しますが、拡張機能の対象外です。次に、外部クライアントは、この拡張機能を介してクライアントのハンドルを公開します。
  • に比べると、制御が強すぎxpropます。実際、異質な表面に描くことさえできます!

したがって、これは、どのクライアントからでも、任意のクライアントから表面パラメーターを取得する一般的な方法になることはほとんどありません。しかし、希望を失わないでください。最初はある目的のために設計されたテクノロジーが、車のシガーライターやAndroidのアクセシビリティAPIのように、他の目的で広く使用されるようになった技術史には多くの例があります。さらに、将来的には(たとえば、タイムトラッカーなど)必要性が確実にあるため、タスクにさらに適したプロトコル拡張が登場する可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.