アクティブなウィンドウのタイトルを変更することになっているC++(Linux、XWindow)でプログラムを書いています。具体的には、特定のテキストを追加します。
アクティブなウィンドウのウィンドウハンドルを取得して(このプログラムに関連していない場合でも)、XFetchNameおよびXStoreNameで使用することはできますか?または、特定のウィンドウのタイトルを変更する他の方法があるのでしょうか。
ありがとうございました。
アップデート1:
使用しました
xprop -root | grep ^_NET_ACTIVE_WINDOW | cut -c41-49
正しいハンドルを返します。このアドバイスをありがとうございます。これは私が以前に使用したものです
xdpyinfo | grep focus: | cut -c16-24
実際のハンドルより1大きい数を返すように見えます。
今、新しい疑問が生じます。XStoreNameがWM_NAMEを変更しているようです。Unityデスクトップを使用していますが、代わりに_NET_WM_NAMEと表示されているようです。これも変更するにはどうすればよいですか?
更新2:答えが見つかりました
Atom Atom_name = XInternAtom(xdisplay,"_NET_WM_NAME",false);
Atom Atom_utf_type = XInternAtom(xdisplay,"UTF8_STRING",false);
XChangeProperty(xdisplay,window_handle,Atom_name,Atom_utf_type,8,PropModeReplace,(unsigned char*)new_name,strlen(new_name));
今のところうまくいくようです