如何读取 X 窗口非客户区(窗口管理器窗口)的属性?XChangeProperty
我在我的 C 程序中设置了 X 属性。通过鼠标使用xprop
和选择非客户区(我的意思是:窗口的标题栏)时,我的应用程序创建的窗口的属性不会显示。我测试了这两种情况。使用时xprop 8s name_of_non_registered_property
和xprop 8s name_of_registered_property
消息不同,所以我更正创建XAtom。
我只在 Plasma5.15 上测试 xprop(KWin 在 X.org 下工作)
我正在混合 GTK+2 和 XCB(或 XLib)代码。当使用XListProperty
,XGetAtomName
来自先前调用先前函数的元素和XGetAtomName
put 到puts
(C stdlib) 的结果时,我的原子的名称是可见的。第一次调用主循环时,可能是 GTK 混乱?在将我的属性添加到它之前,我意识到了窗口。
我认为,这与其说是系统问题,不如说是编程问题。
> xwininfo -all -root
....
0xba00001 "program": ("program" "Program") 10x10+10+10 +10+10
1 child:
0xba00002 (has no name): () 1x1+-1+-1 +9+9
...
>xprop -id 0xba00001
WM_CLASS(STRING) = "program", "Program"
WM_COMMAND(STRING) = { "program" }
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0xba00002
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 29562975
WM_CLIENT_LEADER(WINDOW): window id # 0xba00001
_NET_WM_PID(CARDINAL) = 25223
WM_LOCALE_NAME(STRING) = "pl_PL.UTF-8"
WM_CLIENT_MACHINE(STRING) = "linux-rvnb"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified size: 10 by 10
>xprop -id 0xba00002
>