Transform your smartphone into a wireless gamepad for your PC! 🚀
RemoteGamepad is an innovative application that allows you to use your smartphone as a wireless gamepad controller. It creates a virtual joystick on your PC that receives real-time input from your mobile device through a web interface.
Perfect for situations where you can't connect a gamepad directly to your PC - whether due to hardware limitations, driver issues, or simply wanting to use your mobile device as a controller. This project provides a seamless solution for wireless gamepad control.
- 🎯 Real-time Control: Instant response with minimal latency
- 🌐 Web-based Interface: Works in any modern browser
- 📱 Cross-platform: Android, iOS, and desktop browsers supported
- 🎮 Full Basic Gamepad Support: Buttons, analog sticks, triggers, and D-pad
- 🔌 Virtual Device: Creates a virtual Xbox 360 controller on your PC
- 🎨 Modern UI: Beautiful, responsive web interface
- 🌍 Multi-language: English and Russian support
- 🔒 Secure: Local network communication only
- PC: Linux
- Python 3.13.5+ installed
- Smartphone/Tablet with a modern browser
- Both devices on the same local network
-
Clone the repository:
git clone https://github.com/ZenonEl/RemoteGamepad.git cd RemoteGamepad -
Create virtual environment:
python -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
flet run gui_main.py
-
Connect your device:
- Open your browser on your smartphone
- Navigate to the displayed IP address (e.g.,
http://192.168.1.100:5002) - Connect your gamepad to your mobile device
- Start gaming! 🎮
[Gamepad] → [Smartphone Browser] → [WiFi] → [PC Server] → [Virtual Controller] → [Games]
- Connect your physical gamepad to your smartphone
- Open the web interface in your mobile browser
- Server creates a virtual Xbox 360 controller on your PC
- Input from your mobile device is translated to virtual controller events
- Games recognize the virtual controller as a real gamepad
⚠️ Note: This project is currently in beta development stage and will continue to evolve with new features and improvements.
"Permission denied" error on Linux:
sudo usermod -a -G input $USER
# Log out and back in, or run:
newgrp inputController not detected:
- Ensure both devices are on the same network
- Check firewall settings
- Verify the server is running and accessible
High latency:
- Reduce
INTERVAL_SEND_TIMINGin settings - Check network quality
- Close unnecessary applications
RemoteGamepad/
├── src/
│ ├── api/ # FastAPI server implementation
│ ├── core/ # Core gamepad management
│ ├── gui/ # Flet GUI application
│ └── utils/ # Utility functions
├── static/ # Web assets (CSS, JS)
├── templates/ # HTML templates
├── config/ # Configuration files
├── lang/ # Localization files
├── server.py # Main Flask server
└── main.py # GUI application entry point
The application supports multiple languages:
- English (
lang/en.json) - README.md - Russian (
lang/ru.json) - README.ru.md
Add new languages by creating JSON files in the lang/ directory.
- evdev library for Linux input device support
- FastAPI for the web server framework
- Flet for the desktop GUI framework
- Web Gamepad API for mobile gamepad support
Note: This project is currently in beta development and will continue to improve with new features and enhancements in the future.
- GitHub: @ZenonEl
- Mastodon: @ZenonEl@mastodon.ml
- Project: RemoteGamepad
Made with ❤️ by ZenonEl
Transform your gaming experience with RemoteGamepad!
This project is licensed under the GPL 3.0 License - see the LICENSE file for details.