linux-joystick is a Linux C++ server that:
- Creates a virtual gamepad with
/dev/uinput. - Receives controller state over UDP.
- Applies that state to the virtual gamepad.
- Exposes a UDP discovery endpoint so clients can find the server.
The executable built by this repo is virtual_remote_server.
- Binary UDP controller input on
9000/udp. - UDP discovery service on
9002/udp. - Virtual gamepad output via
/dev/uinput. - Sender pair-lock with timeout-based unlock.
- Input watchdog that falls back to neutral state on silence.
src/: runtime implementation (server_main, controller engine, UDP receiver, discovery service, virtual gamepad).include/: protocol, mapping, and public headers used by the server sources.docs/demo/: architecture diagrams and demo screenshots.CMakeLists.txt: buildsvirtual_remote_serverwith C++17.
cmake -S . -B build
cmake --build buildsudo ./build/virtual_remote_serversudo (or equivalent permissions) is usually required for /dev/uinput.
On successful start, the server prints its control and discovery ports and then waits for controller traffic.








