this post was submitted on 28 Oct 2024
44 points (97.8% liked)

Linux Gaming

15300 readers
11 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 1 year ago
MODERATORS
 

evfwd is a new tool for forwarding evdev input events from one Linux host to another, typically through an ssh connection.

The reason I am posting this here is that my initial motivation for creating the tool was gaming related: I wanted to be able to use my laptop's keyboard and gamepad on my Steam Deck.

The tool works by serializing /dev/input/... events on one hosts and then injecting them via /dev/uinput on another. You have to arrange the pipe between the two ends, typically using ssh:

evfwd /dev/input/somedevice | ssh somehost evfwd -s

See the readme for more details.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 12 points 2 weeks ago (4 children)

Nice! So that should also work to use the Steam Deck as a gamepad on a PC, right?

[–] [email protected] 10 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Yes, that works too with one fairly big caveat: for some reason the Steam Deck's controller is not producing evdev events until a game is actually running on the deck. So evfwd is not receiving events while the Steam UI is active. I haven't been able to figure out yet why this is the case.

If you want to try it you can start a random game on the deck and then fire up evfwd on the controller device and using the -g (grab) flag to avoid passing events to the running game.

Edit: while we are talking about the Steam Deck: when ssh-ing to the deck it can be helpful to turn off wifi power management to avoid lag: iw wlan0 set power_save off

[–] [email protected] 4 points 2 weeks ago (1 children)

This blog entry was recently posted over on [email protected]. https://blogs.gnome.org/alicem/2024/10/24/steam-deck-hid-and-libmanette-adventures/

It details how the controller on the Deck works. Maybe it can help you.

[–] [email protected] 5 points 2 weeks ago

Thanks. I tried to make sense of it and experimented a bit with making the same ioctl's mentioned but couldn't get it to work. I either didn't get it right or it's something else.

Maybe I will take another look later but for now my workaround is to just fire up Baba Is You which idles at a low cpu use and then run evfwd with the grab option so that Baba no longer gets the input.

load more comments (2 replies)