出于教育目的,我开始使用cwiid
和Xlib
编写python脚本,以便我可以像鼠标一样使用我的wiimote。
到目前为止,我已经通过调用disp.warp_pointer(dx,dy)
然后每隔设定的时间间隔调用disp.sync()
来移动光标。恐怕这可能不是最有效的方法,但至少就目前而言,它很简单并且效果很好。
我遇到更多困难的问题是鼠标点击。如何在 Xlib 中模拟鼠标点击?我想要单独的新闻和发布事件,以便我可以拖放内容。我遇到了这篇文章,但那里的所有解决方案似乎都使用其他库。
仅使用 python Xlib :
from Xlib import X
from Xlib.display import Display
from Xlib.ext.xtest import fake_input
d = Display()
fake_input(d, X.ButtonPress, 1)
d.sync()
fake_input(d, X.ButtonRelease, 1)
d.sync()
要fake_input
的第三个参数选择正在模拟的鼠标按钮。 1/2/3 是左/中/右按钮,4/5 和 6/7 应该做垂直和水平滚轮滚动。
在普通的 Xlib(C 语言)上,您可以使用 XTestExtension
或 XSendEvent()
。我不确定他们的 python 绑定。他们的 xcb 版本可能有使用 xpyb
的绑定。
还有一个叫做xte
的二进制文件来自xautomation
包(在Debian上,sudo apt-get install xautomation
然后是man xte
)。 xte
非常易于使用,您还可以查看其源代码以学习如何使用该XTestExtension
。
指针:
- http://cgit.freedesktop.org/xorg/lib/libXtst/
- http://cgit.freedesktop.org/xcb/xpyb/
- http://hoopajoo.net/projects/xautomation.html
- http://linux.die.net/man/1/xte