プログラムから実行中の X ウィンドウ ウィンドウ マネージャの名前を見つけるにはどうすればよいですか?
別のウィンドウ マネージャーが既に実行されているときに別のウィンドウ マネージャーを起動すると、エラーが発生するため、別のウィンドウ マネージャーが最初のウィンドウ マネージャーを検出する方法が必要です。
それはどのように機能しますか?
プログラムから実行中の X ウィンドウ ウィンドウ マネージャの名前を見つけるにはどうすればよいですか?
別のウィンドウ マネージャーが既に実行されているときに別のウィンドウ マネージャーを起動すると、エラーが発生するため、別のウィンドウ マネージャーが最初のウィンドウ マネージャーを検出する方法が必要です。
それはどのように機能しますか?
EWMH 仕様により、準拠するウィンドウ マネージャーは_NET_SUPPORTING_WM_CHECK
ルート ウィンドウのプロパティをウィンドウ ID に設定します。
プロパティが存在し、既存のウィンドウの ID が含まれている場合_NET_SUPPORTING_WM_CHECK
、ICCCM2.0 準拠のウィンドウ マネージャーが実行されています。プロパティが存在するが、既存のウィンドウの ID が含まれていない場合、ICCCM2.0 準拠のウィンドウ マネージャーは適切なクリーンアップなしで終了しました。プロパティが存在しない場合は、ICCCM2.0 準拠のウィンドウ マネージャーが実行されていません。
そのウィンドウ (ルート ウィンドウではなく、ルート ウィンドウのプロパティによって記述されるウィンドウ) には、_NET_WM_NAME
探しているプロパティが必要です。
wmctrlコマンドは、名前を含む多くの EWMH/NetWM 互換の X ウィンドウ マネージャーに関する情報を表示できます。
$ wmctrl -m
Name: Compiz
...
ウィキペディアのページによると、現在 (2012 年 8 月) 次のウィンドウ マネージャーで動作します。
情報を持つ「アトム」が見つかるかもしれませんが、すべてのウィンドウ マネージャーが同じアトムを使用するという 100% の保証はないと思います。"xlsatoms" を実行してサーバー上のアトムを一覧表示するか、"xprop" (およびクリック) を実行して特定のウィンドウのプロパティ (アトムとその値を含む) を表示します。