Pointers 在ubuntu/linux中使用Xlib或xinput控制多个指针

Pointers 在ubuntu/linux中使用Xlib或xinput控制多个指针,pointers,cursor,xlib,multiple-monitors,xinput,Pointers,Cursor,Xlib,Multiple Monitors,Xinput,我正在创建一个在多个xsession中使用多个游标(指针)的系统。我的电脑里有多个显卡,用来控制不同的显示器。我想在每个屏幕上有一个不同的光标,并控制每个屏幕。每个监视器都是一个不同的会话 我开始使用C中的xlib库,使用以下命令控制我的单个光标: XWarpPointer(display,None,window,0,0,0,0,x,y); 这对于一个光标非常有效。然后,我在终端中使用xinput创建了第二个光标: >>xinput create-master second 然后

我正在创建一个在多个xsession中使用多个游标(指针)的系统。我的电脑里有多个显卡,用来控制不同的显示器。我想在每个屏幕上有一个不同的光标,并控制每个屏幕。每个监视器都是一个不同的会话

我开始使用C中的xlib库,使用以下命令控制我的单个光标:

XWarpPointer(display,None,window,0,0,0,0,x,y);
这对于一个光标非常有效。然后,我在终端中使用xinput创建了第二个光标:

>>xinput create-master second
然后我在屏幕上有两个光标。我可以使用“重新附着”命令,用单独的鼠标控制每个鼠标:

>>xinput reattach MOUSEID POINTERID
最后一步是使用xlib分别控制每个光标。当我使用xWarpPointer命令时,它只是移动原始光标,我找不到指定要控制哪个光标的方法。我也无法找到设置默认指针的方法。您可以在终端中使用“xinput list”查看所有指针的列表。有人知道我该怎么做吗


谢谢你的帮助

您需要使用来自XInput2扩展的
XIWarpPointer
请求,它将deviceid作为参数

Bool     XIWarpPointer(
        Display*            display,
        int                 deviceid,
        Window              src_win,
        Window              dst_win,
        double              src_x,
        double              src_y,
        unsigned int        src_width,
        unsigned int        src_height,
        double              dst_x,
        double              dst_y
    );

谢谢那很好用。不过现在还有另一个问题。当我将光标移动到所需的xsession时,它不会刷新背景上的视图。我最后把整个屏幕变成了白色。这是一个关于新话题的长篇大论。