Skip to content
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

Game controller navigation #670

Open
argenkiwi opened this issue Jun 9, 2024 · 3 comments
Open

Game controller navigation #670

argenkiwi opened this issue Jun 9, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@argenkiwi
Copy link

I was wondering if supporting navigation with a game controller (gamepad or joystick) would be possible with a Gemini client like Lagrange.

The reason I ask is because I use an unusual Linux distro called Batocera that is meant to be controlled with a gamepad and joysticks. For that reason they don't have we browsing capabilities I suppose. They do have a file manager called OD Commander that is bundled as what they call a Port (which I believe is like an AppImage). I think a retro-gaming an media-center distro like this could really benefit from using a Gemini client to navigate through their Wiki, access content and much more.

Please feel free to close the issue if it's too off topic, but I would love to hear your thoughts on the technical feasibility of using Lagrange within Batocera.

@skyjake skyjake added the enhancement New feature or request label Jun 9, 2024
@skyjake
Copy link
Owner

skyjake commented Jun 9, 2024

I think this would be feasible to implement, and would actually be useful also in a regular Android TV kind of setup. I can't comment specifically about Batocera because I'm unfamiliar with it but thanks to SDL the unlying platform is pretty much abstracted away.

For v1.18 I've been improving usability of the UI when one only has a keyboard, making focus navigation more sophisticated and fixing some event conflicts, etc. This work is directly applicable — required, even — for game controllers as well.

What still needs implementing:

  • Handling the various game controller / joystick axis and button events. They can be directly mapped to pre-existing event handling, like trackpad navigation, scrolling and key actions.
  • Making the game controllers / joysticks bindable in the Preferences ("Keys" tab).

@argenkiwi
Copy link
Author

argenkiwi commented Jun 9, 2024

That sounds very promising! I have just reached out to the Batocera community via Reddit to gauge interest. I think it would be an exciting experiment to make Lagrange available in there, as a Port to begin with I presume. I'll try to get that to work myself or see if I can get some help to do it.

If you are curious about Batocera and you have a USB drive laying around, I'd encourage you to flash Batocera's latest build for x86 systems into it and boot it on any PC. Alternatively, ETA Prime is a good Youtube channel to learn about it.

I would expect a community around retro-gaming and media preservation would be very receptive to the Small Internet concept, particularly considering the nostalgic side of it. They already seem to put a lot of effort putting together content around old games and consoles they are passionate about, the Gemini protocol could provide a more flexible alternative for them to contribute to their passion projects. I am hopeful the Batocera community could give the gemini-space a good boost.

Thanks for the prompt reply and the positive take on my suggestion.

@argenkiwi
Copy link
Author

UPDATE: runs like a charm! Following the documentation for Ports I managed to get the Lagrange AppImage running without issues on Batocera. Of course I need a mouse and keyboard to use it for the moment. Looking forward to the improved keyboard support and eventually game controller support, whenever you find the time to add them. 👪 Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants