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

时间:2012-12-05 01:17:15

标签: pointers cursor xlib multiple-monitors xinput

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

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

XWarpPointer(display,None,window,0,0,0,0,x,y);

这适用于一个游标。然后我在终端中使用xinput创建了第二个游标:

>>xinput create-master second

然后我在屏幕上有两个游标。我可以使用reattach命令使用单独的鼠标控制每个鼠标:

>>xinput reattach MOUSEID POINTERID

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要使用来自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
    );