Skip to main content

Use Joy-Con or Pro Controller as remote control of Linux machine.

Project description

Joymote

Use Joy-Con or Pro Controller as remote control of Linux machine.

Currently, only support Pro Controller. We are working on supporting Joy-Con.

Requirements

  • Python
  • uinput module
    • Check whether the uinput module is loaded, by running:

      lsmod | grep uinput
      

      If it is loaded, you will see a line like uinput 20480 0.

    • You can manually load the module by running:

      sudo modprobe uinput
      
    • You can also run the following command to load uinput modules automatically on boot.

      sudo bash -c "cat uinput > /etc/modules-load.d/uinput.conf"
      
    • Make sure you have the permission to access /dev/uinput.

Installation

Using pip

pip install joymote

From source

git clone https://github.com/kkoyung/joymote.git joymote
cd joymote
# check out different version by tags
pip install .

Usage

  1. Copy the example configuration file to ~/.config/joymote/config.toml.

    wget -o ~/.config/joymote/config.toml https://raw.githubusercontent.com/kkoyung/joymote/refs/heads/main/config.toml
    
  2. Connect to the controller via Bluetooth, just like usual Bluetooth devices. Tips: Press and hold down the tiny button between ZL and ZR buttons, for at least one second to enter pairing mode.

  3. Run joymote.

    joymote
    
  4. By default, joymote does nothing. Check out config.toml and change it to configure joymote's behaviours.

Development

  1. Clone the repository.

    git clone https://github.com/kkoyung/joymote.git joymote
    cd joymote
    
  2. Run the code.

    uv run joymote
    # or
    python -m venv .venv
    source .venv/bin/activate
    python install .
    python -m joymote
    

Pairing two Joy-Con as one device

Use joycond, which is a userspace daemon, to combine Joy-Cons into a single device.

  • Install and start. For example, if you are on Arch Linux, you can run

    yay -S joycond-git
    sudo systemctl enable --now joycond
    
  • Then, follow this instruction to pair the controller.

Disclaimer

Nintendo®, Nintendo Switch®, Joy-Con®, and Pro Controller® are registered trademarks of Nintendo of America Inc. This project is an independent work and is not affiliated with, endorsed by, or sponsored by Nintendo. All trademarks are the property of their respective owners.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

joymote-0.0.3.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

joymote-0.0.3-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file joymote-0.0.3.tar.gz.

File metadata

  • Download URL: joymote-0.0.3.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for joymote-0.0.3.tar.gz
Algorithm Hash digest
SHA256 82ceea92f121a45700431410f825059d246a2c0f394b8d6d829380031d77ea40
MD5 5e334626dc0b0370c220a7447083dcee
BLAKE2b-256 cc81278138f863575fc38a7d5334656e527b4219754e2c24e8c83de3725e158b

See more details on using hashes here.

Provenance

The following attestation bundles were made for joymote-0.0.3.tar.gz:

Publisher: build-deploy.yaml on kkoyung/joymote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file joymote-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: joymote-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for joymote-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 db696a9307d0cd39ccc05503cffcd461f617ccd5f62e89363b25fa2acadce90b
MD5 9e0c8824114eae64349356eb8963ddd7
BLAKE2b-256 a19e6c782de6f1cea8acde54b53337ac2281c5c082bc9538202bb2538ea917c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for joymote-0.0.3-py3-none-any.whl:

Publisher: build-deploy.yaml on kkoyung/joymote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page