ブラウザWM_NAMEの変更をリアルタイムで監視する方法

ブラウザWM_NAMEの変更をリアルタイムで監視する方法

ブラウザのWM_NAME(google-chromeと仮定)がリアルタイムでどのように変更されるかを確認する必要があります。

どうすればいいですか?

答え1

WM_CLASSは決して変更されません。常に同じです。捕まえようとしているようですVISIBLE_NAME

これは次の方法で行うことができますxprop

xprop -spy -id 0x01a00092 _NET_WM_VISIBLE_NAME
_NET_WM_VISIBLE_NAME(UTF8_STRING) = "x11 - How can I monitor in real time the changes to the browsers WM_CLASS - Unix & Linux Stack Exchange ::: http://unix.stackexchange.com/questions/349872/how-can-i-monitor-in-real-time-the-changes-to-the-browsers-wm-class - Pale Moon"
_NET_WM_VISIBLE_NAME(UTF8_STRING) = "Newest Unanswered Questions - Unix & Linux Stack Exchange ::: http://unix.stackexchange.com/unanswered/tagged/?tab=newest - Pale Moon"
_NET_WM_VISIBLE_NAME(UTF8_STRING) = "x11 - How can I monitor in real time the changes to the browsers WM_CLASS - Unix & Linux Stack Exchange ::: http://unix.stackexchange.com/questions/349872/how-can-i-monitor-in-real-time-the-changes-to-the-browsers-wm-class - Pale Moon"

-id xxx監視するターゲットウィンドウのウィンドウID。

答え2

これを使用して、xtraceウィンドウのプロパティの変更を監視できます。xtraceDebian ではsudo apt-get install xtrace

使用例:Chromium WebブラウザがプロパティWM_NAMEを変更する方法を監視するには、まずすべてのChromiumウィンドウを閉じてから実行すると、次のxtrace -n -- chromium | awk '/ChangeProperty/ && /"WM_NAME"/'ような出力が表示されます。

001:<:00aa: 32: Request(18): ChangeProperty mode=Replace(0x00) window=0x03200001 property=0x27("WM_NAME") type=0x1f("STRING") data='chromium'
000:<:0101: 24: Request(18): ChangeProperty mode=Replace(0x00) window=0x02400002 property=0x27("WM_NAME") type=0x15d("UTF8_STRING") data=;
000:<:010c: 44: Request(18): ChangeProperty mode=Replace(0x00) window=0x02400002 property=0x27("WM_NAME") type=0x15d("UTF8_STRING") data=0x55,0x6e,0x74,0x69,0x74,0x6c,0x65,0x64,0x20,0x2d,0x20,0x43,0x68,0x72,0x6f,0x6d,0x69,0x75,0x6d;
000:<:0117: 44: Request(18): ChangeProperty mode=Replace(0x00) window=0x02400002 property=0x27("WM_NAME") type=0x15d("UTF8_STRING") data=0x4e,0x65,0x77,0x20,0x54,0x61,0x62,0x20,0x2d,0x20,0x43,0x68,0x72,0x6f,0x6d,0x69,0x75,0x6d;

これは、WM_NAMEプロパティが「chromium」から「」、「タイトルなし - Chromium」、「新しいタブ - Chromium」に変更されることを意味します。

引用:https://www.x.org/wiki/guide/debugging/

関連情報