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.

  • donio@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    2 days ago

    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