2014-03-24 67 views
0

我正在写一个基于外部硬件(Leap Motion Controller)输入的Linux鼠标仿真程序。为了正确操作,我想要改变光标的形状,以向用户传递与它们对光标操作相关的状态信息。我目前正在编写一个用户空间程序来处理这个问题。使用XTest库处理鼠标移动和鼠标点击,但现在我无法找到改变光标形状的方法。使用XDefineCursor()我已经能够将光标更改为我的程序拥有的窗口上的自定义形状,但我需要它在完整的图形环境中,因为此程序将保持隐藏在最后面的 的时间。C++ X11全局变化光标

如果可能的话,我还不想写一个设备驱动程序并留在用户空间中。此外,我宁愿不必更改显示管理器的代码(即Unity或LXDE)。

编辑:
硬件是Leap Motion控制器。如果他们仍在传感器范围内,或者超出范围,我需要向用户显示。

+0

什么样的外部硬件的你有没有修改光标?更加详细一些! –

回答

0

你可以看与XFixes protocol光标更改,然后每次更改添加图形的时间,以任何窗口试图设置(SelectCursorInput/GetCursorImage/CursorNotify事件)

+0

它看起来很有希望,我似乎无法找到很多关于它的文档。 – user794671

+0

我可以给你简单的例子使用C或JavaScript与https://github.com/sidorares/node-x11 –

+0

@AndreySidorov:我期待做类似于OP的东西,并辩论是否要去挖KDE图看看它是如何实现弹性游标的(当一个应用程序启动时),或者解决你的建议方法(KDE是否也在做同样的事情?)。我不禁想知道追逐光标变化是否会引入竞争条件并引发故障(WM /应用程序光标更改 - > X11获得更新比赛并刷新显示 - >光标monkey-patch - > X11 update =>未修正的游标显示为一个或两个框架)。我还记得KDE的反弹使得旧电脑上的光标闪烁不定 - 我能解决这个问题吗? –