https://github.com/rmst/yoke
Turns your Android device into a customizable gamepad for Windows/Mac/Linux
https://github.com/rmst/yoke
android gamepad
Last synced: 12 months ago
JSON representation
Turns your Android device into a customizable gamepad for Windows/Mac/Linux
- Host: GitHub
- URL: https://github.com/rmst/yoke
- Owner: rmst
- License: mit
- Created: 2018-08-30T01:33:20.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-06-18T15:39:22.000Z (about 3 years ago)
- Last Synced: 2025-06-29T11:46:37.692Z (12 months ago)
- Topics: android, gamepad
- Language: Python
- Homepage:
- Size: 8.34 MB
- Stars: 229
- Watchers: 14
- Forks: 25
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**NOTE:** The following instructions are for Yoke Classic, a stable version no longer in development, and available in Google Play and F-Droid
If you want a version with customizable layouts, try [**Yoke WebView**](WEBVIEW.md). Yoke WebView is for the moment **only available on GitHub**.
## Yoke Classic (desktop client)

#### Yoke is a hackable Android gamepad for Linux (and Windows)
Get the Android app on [F-Droid](https://f-droid.org/packages/com.simonramstedt.yoke/), [Google Play](https://play.google.com/store/apps/details?id=com.simonramstedt.yoke) or [Github](https://github.com/rmst/yoke-android).
The Linux client can be installed with
```bash
# Requires Python 3.5+ which comes pre-installed in Ubuntu 16.04 and after.
pip3 install git+https://github.com/rmst/yoke.git@v0.1 --upgrade
```
On Linux to enable Yoke to create gamepad devices we need to add a udev rule
```bash
yoke-enable-uinput # you can find that script in the "bin" directory
```
(This can be undone via `yoke-disable-uinput`)
On Windows Yoke needs the vJoy driver. The installer can be downloaded [here](https://sourceforge.net/projects/vjoystick/).
Now you can run the client with
```bash
yoke
```
Your computer should then show up in the Yoke app immediately if you are on the same network.
### Extras
To test Yoke on Linux you can install, e.g. jstest-gtk:
```bash
sudo apt install jstest-gtk
jstest-gtk # to run
```
To use Yoke effectively with SDL-based games (e.g. all games using Unreal Engine or Unity3D), you can install the SDL gamepad tool. (If the package is not found, [download the tool from the website](http://generalarcade.com/gamepadtool/).)
```bash
sudo apt install gamepadtool
gamepadtool # to run
```
### Multiple virtual devices on the same machine
Each `yoke` process creates one virtual device. To run multiple processes on the same machine make sure to give them different `--id` numbers (any integer greater than 0).
### Security
The communication between the Linux client and the Android app are unencrypted UDP messages. You should therefore use it in networks you trust. However, if you are not in a trusted environment you can always create one via USB or Bluetooth. Just enable USB or Bluetooth tethering on your Android device and connect your Linux computer. This will create a mini-network for just your Phone and Computer and Yoke will work as usual.
### Tweaking
Changing the controller mapping and behaviour of certain axes is very simple. Have a look at `bin/yoke` which is the Python script that is used for the `yoke` command.
If you want to modify more low level stuff that's also pretty easy. The Yoke linux client basically consists of a single Python file `yoke/service.py`.
