一、窗口调试工具
xwininfo、xdotool、xprop
- 其源码如下,可根据使用的命令,找到对应的源码,提取出来使用
二、查看所有打开的窗口
打开kwin调试终端,可以查看所有窗口
- qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole
- 查看所有窗口的状态,包括管理窗口和非管理窗口 (tool窗口)
三、如何判断是否为tool窗口
- xwininfo的源码实现如下
if (attributes.c_class == InputOutput
&& attributes.map_state == IsViewable
&& attributes.override_redirect) {
...
}
四、xwininfo 的其他使用
- xwininfo 回车
- 点击任意窗口,可以看到窗口的信息
- xwininfo -id $winId
- 可以查看对应id 的窗口信息
五、获取窗口层叠堆栈
- 从右到左,窗口从顶部到底部
xprop -root _NET_CLIENT_LIST_STACKING
图1 目标窗口的层叠关系
图2 窗口层叠关系获取流程