-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use Gamepad as Mouse on GUI #99
Comments
Hey there Lukas ;) I did a little research and there are already some projects around (QJoyPad and Antimicro e.g.) which do exactly what you want. I am not sure therefore If it is a good Idea to do this in kernelspace. I will give it a try and think about it - stay tuned :) |
That looks awesome, will give it a shot and report back! :) |
I thought a bit about it and I think I will not implement this feature in this driver, the reason is redundancy in essence. It would bloat up the kernel if every driver translates the gamepad events into mouse events itself (and every gamepad would most probably do it in another way, which is bad I guess). But we could create another module, like ff-memless, which can be loaded by other drivers as needed. This will definitely take some time to implement, but it would be interesting to do that. I will therefore keep this issue open :) |
I created a new branch, called You have to install the |
It is useable now, but I will have to change the behaviour of reports. To install the current version, do the following:
To use the mouse, press and hold the XBOX button for around 2 seconds until the gamepad confirms the mode change by a short rumble. You can now use the left stick to move the mouse and simulate a mouseclick by the (A)-button. Press and hold the XBOX button again to switch back to the gamepad mode. |
That's kinda cool, will test it out. :) |
Done - please update vmouse. It should work now smoothly 😁 A (little) drawback is that this branch cannot be installed on kernel versions before 4.14, which was released at 12. Nov. 2017 (because of a timer API change). But that's maybe not really an issues since Ubuntu 18.04 (LTS) is at 4.15 and even Raspbian is already at 4.19. |
Sucessfully tested under:
|
This works great! |
@KocproZ Done, please get the latest version of the vmouse branch of xpadneo |
It doesn't work :/
If you need any additional logs let me know |
Ah sorry, haven't uploaded the new vmouse module, please update this one too ;) (uninstall the old one, clone, install the new one, reboot) |
Installing vmouse fails on build
Here is the |
Thanks, and sorry again... fixed (hopefully) - I accidentally pushed a dirty one... |
Thanks, it works now! |
Yes for sure, I will make that configurable in the future. I slowed it down for now - just update xpadneo again (vmouse branch) |
It's faster now 😅 |
sorry, I am quite busy right now therefore I haven't tested it. try again ;) |
It's perfect, thanks! |
No problem, thanks for reporting and testing! |
Hum, isn't it still a bit fast? I tried it myself and it's still hard to navigate |
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
@cybergurke If you'd like to try there's a very early work-in-progress PR #282 that re-implements mouse mode (vmouse not needed / not compatible). Feel free to continue discussion over there. To toggle mouse mode, press and hold the guide button, then tap the select button (left below guide), and release the guide button. Left stick is for the pointer, right stick for the wheel. The triggers are the mouse buttons, the shoulder buttons are for back and forward in a web browser. Most other buttons are undecided yet, tho this is planned: dpad for cursor movement, A = enter, B = escape. In theory, the start button (right below guide) should show an on-screen keyboard if your desktop environment understands the KEY_KEYBOARD event but this assignment is not final. |
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Fixes: atar-axis#333 See-also: atar-axis#419 See-also: atar-axis#435 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Fixes: atar-axis#333 See-also: atar-axis#419 See-also: atar-axis#435 Signed-off-by: Kai Krakow <[email protected]>
Co-authored-by: Jacob Essex <[email protected]> Co-authored-by: Florian Dollinger <[email protected]> Closes: atar-axis#160 Closes: atar-axis#105 Closes: atar-axis#99 Fixes: atar-axis#333 See-also: atar-axis#419 See-also: atar-axis#435 Signed-off-by: Kai Krakow <[email protected]>
Summary:
I'd love having the ability to control Linux GUI using the XBox One Controller and xpadneo driver as a mouse substitute.
Specifics:
I'm currently running Raspbian OS on a Raspberry Pi 3 B+.
Using Parsec i created a streaming box to stream games from my computer to my TV via LAN.
My XBox One Controller is hooked up to the Raspberry Pi via bluetooth and works like a charm in game with xpadneo.
Now i'd love to use the Gamepad as a mouse on Raspbian so i don't need a physical mouse hooked up to the Raspberry Pi anymore to control the Raspbian GUI.
Here's a suggestion for a possible key assignment:
Left Joystick = cursor movement
right joystick = scroll wheel
button "A" = left click
button "B" = enter
button "X" = right click
"menu" button = maybe a shortcut to the linux shutdown/restart window?
(Scrolling could also be done using the left and right shoulder buttons.)
The text was updated successfully, but these errors were encountered: