如何使用 xlib 观看任何 window 动作?

How to watch any window movements with xlib?

如何跟踪所有 windows 的移动事件? 就像如果用户移动 window "Pluma" 我的守护进程将收到 window 名称和新坐标。

if(XCheckMaskEvent(display, -1, &event))
    {
        if(event.type == ConfigureNotify)
        {
            moved += event.xmotion.x + event.xmotion.y;
            //qDebug << moved;
        }
    }

我试过像这样跟踪它,但它不起作用...

您首先需要 select SubstructureNotify 根 window 掩码:

XSelectInput(display, XDefaultRootWindow(display), SubstructureNotifyMask );

你这样告诉 X 服务器 "I'm interested in root window childrens move/resize/delete/create events"