Controllers, gyro, and haptics over the network
Controller not detected, no rumble, gyro and touchpad ignored? How punktfunk forwards gamepads — including DualSense gyro, touchpad, haptics, and adaptive triggers — across its native clients.
The video and audio are perfect, but your controller isn't detected, there's no rumble, the DualSense gyro and touchpad do nothing, or input feels laggy. Getting a full controller experience across a network is harder than it looks. Here's how punktfunk does it.
What's hard about controllers over the network
- Detection and mapping — the host has to present a virtual pad that games recognize, with the right button layout.
- Feedback back-channel — rumble, lightbar, and adaptive triggers have to travel host → client, not just inputs client → host.
- Rich inputs — DualSense gyro, touchpad, and motion are easy to drop.
- Latency — every extra hop in the input path is felt directly as click-to-action delay.
How punktfunk's input layer works
On the host, punktfunk creates a virtual gamepad — a uinput Xbox 360 pad by default, or a DualSense over UHID on Linux — and the client negotiates which type it wants on connect. Inputs flow up; feedback flows back down:
- Gamepads + rumble — the virtual pad is created and destroyed with the session, with a rumble back-channel.
- DualSense extras — touchpad and motion forwarding, plus lightbar, player LEDs, and adaptive-trigger effects rendered back on the client.
- Per-platform capture — SDL3 on Linux and Windows, GameController on Apple, each mapping the controller natively rather than through a lowest-common-denominator layer.
The Steam Deck is the showcase: its controls map to the host out of the box through the native Decky plugin.
Try it
If controllers have been the rough edge of your remote play, punktfunk's input layer is built to carry the whole thing — gyro and haptics included. See where it fits in the best self-hosted game streaming setups in 2026.