skyjake / lagrange

A Beautiful Gemini Client
https://gmi.skyjake.fi/lagrange/
BSD 2-Clause "Simplified" License
1.16k stars 62 forks source link

Game controller navigation #670

Open argenkiwi opened 2 weeks ago

argenkiwi commented 2 weeks ago

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 commented 2 weeks ago

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:

argenkiwi commented 2 weeks ago

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 commented 2 weeks ago

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. :family: Thanks!