【问题标题】:Controlling multiple pointers with Xlib or xinput in ubuntu/linux在 ubuntu/linux 中使用 Xlib 或 xinput 控制多个指针
【发布时间】:2012-12-05 01:17:15
【问题描述】:

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

我开始使用 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”查看所有指针的列表。有谁知道我该怎么做

感谢您的帮助!

【问题讨论】:

    标签: xlib multiple-monitors mouse-cursor xinput


    【解决方案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
        );
    

    【讨论】:

    • 谢谢!这完美无缺。现在还有另一个问题。当我将光标移动到所需的 xsession 时,它不会刷新背景上的视图。我最终将整个屏幕变白。这是一个很长的新话题。 stackoverflow.com/questions/13733239/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多