2014-03-24 66 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的反彈使得舊電腦上的光標閃爍不定 - 我能解決這個問題嗎? –