为了在自动化 GUI 应用程序的同时继续使用我的 PC,我使用 xinput 在我的机器上创建了 2 个指针,一个由我控制,另一个由 pyautogui 控制。
在我的系统上,这是通过以下方式完成的:
xinput create-master mynewpointer
xinput reattach 10 11
我使用主指针 11 pyautogui 使用默认指针 2
然而,这些指针以各种方式相互冲突,相互抢夺焦点是主要问题之一。
即使使用 xinput --map-to-output 或 --set-cp 不起作用,当我的指针将焦点放在新窗口上时,指针仍然从正在测试的窗口/监视器“弹回”。
有没有办法分开这些指针?
答案1
也许您可以只为应用程序使用单独的专用 X11 服务器。这可以像运行一样简单
Xnest :1 &
然后在 DISPLAY=:1 下运行您的应用程序。但是,除非真正的光标位于窗口中,否则不会显示光标,并且将光标移动到窗口中将移动 Xnest 光标。
另一种选择是启动 VNC 服务器。这样就比较独立一点了。
vncserver :1 securitytypes=none -interface localhost
vncviewer :1
还有Xephyr
嵌套服务器,它与 Xnest 类似,但添加了许多底层服务器可能没有的功能,并且也存在于带有 OpenGL 的版本中。