2013-03-26 10 views
5

免責事項:このトピックには非常に似たquestionがあります。Linux:表示されているすべてのウィンドウのリストを取得する方法

NoozNooz42がhereと記載したのと全く同じ結果を得ようとしています。しかし、mdma答えは自分のニーズに合っていません。なぜなら私はLinuxで同じことをすることに興味があるからです。それが重要であれば、グノームを好む。したがってuser32ライブラリでJNAを使用することはできません(またはそれですか?)。

すべての提案は素晴らしいでしょう、私はトピックでほとんど何も見つけることができませんでした。

P.S. 私が見つけた唯一の事は、wmctrlコマンド(私は呼び出して、最終的にJavaで解析することができます)はウィンドウをリストしていますが、zオーダーについての情報は何も教えてくれません。

更新: zオーダーが変更されたときに通知/コールバックを取得できるのは完璧です。

答えて

6

xpropを使用すると、ウィンドウのプロパティが表示されます。 zオーダーのウィンドウのリストには、ルートウィンドウのプロパティ_NET_CLIENT_LIST_STACKINGである:

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)' 

出力は次のようになります。

_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x2000003, 0x4000004, 
0x1c00004, 0x1c00030, 0x1c00033, 0x2e00004 

その後あなたが特定のウィンドウに関する詳細情報を取得することができます

xprop -id <id> 

または

xwininfo -id <id> 
+0

非常に良い答えは、ありがとう! +1これは、しかし、私はまだ純粋なJavaソリューションのために期待しています –

+0

質問の私の更新を参照してください。 zオーダーの変更について通知するものは何か知っていますか? –

+0

'xev -root'は、ルートウィンドウのプロパティのすべての変更を表示します。 _NET_CLIENT_LIST_STACKINGの後ろにフィルタをかけるだけです。 –

関連する問題