Join us on our own very special Reddit: /r/Linuxers
Virpil - Building a Joystick Tool
Kipring 26 Oct

I'm a horrible coder - but I'm not asking for help only guidance.

Ran many searches and have now resorted to posting on a few forums.


Goal - have a Virpil HOTAS and joystick function within SC.

Looking for two items one may negate the ask for the latter.

1. Is it possible to map out keybindings from a joystick and have them pushed to a game running on top of Wine?

2. If so, how does the input get pushed to Wine and then on to the game?


Any help is appreciated.

whizse 26 Oct
  • Supporter

Just to make sure I don't misunderstand, you want to add joystick input to a game that doesn't support it?

Essentially pushing button X on the joystick should generate a keyboard event?

Patola 26 Oct

Quoting: KipringI'm a horrible coder - but I'm not asking for help only guidance.

Ran many searches and have now resorted to posting on a few forums.


Goal - have a Virpil HOTAS and joystick function within SC.

Looking for two items one may negate the ask for the latter.

1. Is it possible to map out keybindings from a joystick and have them pushed to a game running on top of Wine?

2. If so, how does the input get pushed to Wine and then on to the game?


Any help is appreciated.
AntiMicroX.

Kipring 26 Oct

Quoting: whizseJust to make sure I don't misunderstand, you want to add joystick input to a game that doesn't support it?

Essentially pushing button X on the joystick should generate a keyboard event?


I like where you're going with this.

Yes, in a nutshell. Phrasing it this way illuminated two things.

1. SC doesn't support all the buttons a Virpil HOTAS provides - so keybinding would make more sense and there already are keyboard binders for joysticks available for linux.

2. Why won't SC support the HOTAS from Virpil, is it due to too many input (I've read claims of 50). This might be the other part of the solution - try binding up to 50 buttons and use the remainder for keyboard bindings. I've found that some of the lower number logical buttons DO work. Albeit none of the scroll wheels do and they are numbered under 50 on the logic buttons.

whizse 26 Oct
  • Supporter

I'm not sure if AntiMicroX covers this case, or if there's something similar out there. There usually is, and you only find out half way through your own project.

But if you want to write your own driver it's evdev you're after. It's quite easy to use, and for example the Python bindings are excellent:
https://python-evdev.readthedocs.io/en/latest/

You would pretty much create your own userspace driver. Take exclusive control of the HOTAS, pass through the events for the buttons that are supported in the game, capture the rest and create matching keyboard events. Then inject it all back in the input stream.

It should work transparently to Wine, or any other game, but you might end up with two joystick devices and have to disable one of them in the Wine control panel.

Kipring 26 Oct

Thank you whizse and Patola.

- I'll try AntiMicroX and see how far I can get initially.
- I'll think look into evdev and post back here if I make any progress for anyone else to use

While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.

Livestreams & Videos
Community Livestreams
Latest Forum Posts