Connecter des Joy-Con Nintendo via bluetooth pour les utiliser comme une seule manette sous Linux

linux logo with switch grip controller

Introduction

Depuis une bonne dizaine d’années maintenant, Linux a fait des progrès remarquables pour nous permettre de jouer aux jeux vidéo sans être contraint de rester sur Windows. Même si je ne joue plus beaucoup, j’apprécie de temps en temps démarrer un jeu vidéo sur mon ordinateur portable. Par contre, la seule manette que j’ai sous la main est une paire de Joy-Con Nintendo provenant de ma Switch…

Réussir à faire fonctionner les 2 Joy-Cons comme une seule manette m’a pris pas mal de temps et de recherches. Afin de m’épargner (et, je l’espère, de vous éviter) les mêmes efforts à l’avenir, j’ai documenté les étapes ci-dessous.

J’ai testé les étapes suivantes sur Linux Mint 22.1 et 22.3, donc les étapes ci-dessous devraient fonctionner sans problème sur Ubuntu et les autres distributions basées sur Debian.

Prérequis

Nous devons d’abord nous assurer que le noyau de votre système d’exploitation dispose bien du pilote hid_nintendo. Si votre noyau a une version égale ou supérieure à 5.16.0, tout devrait bien se passer.

Pour connaître votre version du noyau, exécutez la commande uname -r.

Les noyaux récents ont ajouté la prise en charge des Joy-Con et des manettes Pro de Nintendo ! Exécutez la commande suivante pour vérifier :

modinfo hid_nintendo

Si tout est ok, vous devrier voir quelque chose qui ressemble a ca :

modinfo hid_nintendo logs

Sinon, je vous invite a installer le pilote en suivant les infos a l’adresse https://github.com/nicman23/dkms-hid-nintendo

Installer joycond pour combiner les Joy-Cons

Pour combiner les Joy-Con gauche et droit en une seule manette, nous devons installer le service joycond. Toutes les étapes peuvent être suivies directement sur le dépôt GitHub à l’adresse suivante : https://github.com/DanielOgorchock/joycond.

Ouvrez un terminal et exécutez ces commandes :

sudo apt install cmake libudev-dev libevdev-dev git
git clone https://github.com/DanielOgorchock/joycond
cd joycond
cmake .
sudo make install
sudo systemctl enable --now joycond

Nous devons nous assurer que le service joycond est bien en cours d’exécution. Dans un terminal, exécutez :

systemctl status joycond

Nous voulons voir quelque chose de ce genre - assurez-vous que les mots active (running) sont présents :

● joycond.service - joycond
     Loaded: loaded (/usr/lib/systemd/system/joycond.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-01-16 19:47:45 PST; 13min ago
   Main PID: 978 (joycond)
      Tasks: 1 (limit: 18962)
     Memory: 636.0K (peak: 1.6M)
        CPU: 67ms
     CGroup: /system.slice/joycond.service
             └─978 /usr/bin/joycond

Jan 16 19:47:45 clank systemd[1]: Started joycond.service - joycond.
Jan 16 19:47:45 clank joycond[978]: adding epoll_subscriber: fd=4

Appairage des Joy-Cons

Parlons maintenant de la partie délicate ! Délicate car les Joy-Cons ne sont pas aussi coopératifs qu’on pourrait l’espérer. Chaque étape décrite ici doit être suivie une par une, sans passer à la suivante avant d’avoir les résultats voulu à l’étape précédente.

  1. Prenez un seul Joy-Con — supposons le droit — et repérez le bouton situé au milieu du rail, à côté des voyants de synchronisation. Appuyez dessus pendant un moment jusqu’à ce que les lumières clignotent successivement. pairing joy con

  2. Ouvrez les paramètres « Périphérique Bluetooth » et cliquez sur « Rechercher ». Vous devriez voir apparaître un nouveau périphérique nommé « Joy-Con (R) ».
    • Faites un clic droit dessus
    • Cliquez sur “Appairer
    • Puis cliquez sur “Faire confiance
  3. Attendez un petit moment et le périphérique devrait se déconnecter (cela arrive systématiquement pour ma part). Ensuite :
    • Faites de nouveau un clic droit
    • Cliquez sur “Connecter
  4. Dans un terminal, exécutez bluetoothctl devices Connected. Si vous voyez quelque chose comme ceci :
Device 76:L6:88:8B:17:7E Joy-Con (R)

Alors vous pouvez continuer. Répétez exactement les mêmes 4 étapes pour le second Joy-Con. Relancez la commande ci-dessus et, si tout est bon, les deux périphériques devraient être listés.

Device 76:L6:88:8B:17:7E Joy-Con (R)
Device 54:B7:77:1A:18:6B Joy-Con (L)

Voici une vidéo montrant toutes ces étapes sur mon ordinateur portable :

Combiner les Joy-Con en une seule manette

💡 Après de nombreux essais, je me suis rendu compte que les Joy-Cons étaient systématiquement combinés uniquement lorsque le Joy-Con droit était appairé en premier, puis le Joy-Con gauche ensuite. Cela peut être l’inverse pour vous, donc assurez-vous d’essayer les deux combinaisons.

Les deux Joy-Con sont connectés. Maintenant, nous voulons les utiliser comme une seule manette.

  • Dans un terminal, exécutez journalctl -u joycond -f
  • Faites glisser les deux manettes dans le support Joy-Con (le support dans lequel on insère les Joy-Con), puis appuyez simultanément sur les boutons supérieurs L et R pendant quelques secondes, jusqu’à ce que les voyants s’alignent et cessent de bouger.

Joy-Con grip

  • Vérifiez les logs dans le terminal.

Voici un exemple de ce que je vois sur le mien :

Jan 20 14:54:08 clank joycond[1070]: Found Right Joy-Con
Jan 20 14:54:08 clank joycond[1070]: driver_name: Joy-Con (R)
Jan 20 14:54:08 clank joycond[1070]: MAC: 70:F0:88:8B:18:5E
Jan 20 14:54:08 clank joycond[1070]: adding epoll_subscriber: fd=5
Jan 20 14:54:25 clank joycond[1070]: DEVNAME=event16 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:057E:2006.000C/input/input44/event16
Jan 20 14:54:25 clank joycond[1070]: Creating new phys_ctlr for /dev/input/event16
Jan 20 14:54:25 clank joycond[1070]: Found Left Joy-Con
Jan 20 14:54:25 clank joycond[1070]: driver_name: Joy-Con (L)
Jan 20 14:54:25 clank joycond[1070]: MAC: 70:F0:88:8B:64:1C
Jan 20 14:54:26 clank joycond[1070]: adding epoll_subscriber: fd=15
Jan 20 14:54:38 clank joycond[1070]: Waiting controller needs partner
Jan 20 14:54:38 clank joycond[1070]: Found left
Jan 20 14:54:38 clank joycond[1070]: Waiting controller needs partner
Jan 20 14:54:38 clank joycond[1070]: Waiting controller needs partner
Jan 20 14:54:38 clank joycond[1070]: Found left
Jan 20 14:54:38 clank joycond[1070]: Waiting controller needs partner
Jan 20 14:54:38 clank joycond[1070]: Found right
Jan 20 14:54:38 clank joycond[1070]: adding epoll_subscriber: fd=25

On recherche à voir Found Left Joy-Con suivi de Found Right Joy-Con ou l’inverse, et lorsque les deux Joy-Con sont combinés, le message Waiting controller needs partner doit arrêter d’apparaître dans les logs.

Tests

Pour confirmer que la manette fonctionne correctement, nous pouvons installer l’utilitaire joystick, puis exécuter jstest /dev/input/js0 :

sudo apt install joystick
jstest /dev/input/js0

Appuyez sur quelques boutons pour vérifier que les touches sont bien reconnues dans les logs ! Voici une autre vidéo récapitulant les dernières étapes :


Il est temps de jouer. À vos manettes ! 🎮