ブラウザの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
ウィンドウのプロパティの変更を監視できます。xtrace
Debian では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」に変更されることを意味します。