jstest-gtk - Le Bottin des Jeux Linux

jstest-gtk

🗃️ Specifications

📰 Title: jstest-gtk 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Tool 👁️ Visual: 2D
🏷️ Category: Tool ➤ Input devices ➤ Gamepads & Steering Wheels 🏝️ Perspective: First person (interface)
🔖 Tags: Tool; Controller ⏱️ Pacing: Real Time
🐣️ Approx. start: 2009-05-02 👫️ Played: Single
🐓️ Latest: 2025-04-03 🚦 Status: 05. Tested & Playable (status)
📍️ Version: Latest: 0.1.0 / Dev: 92bdf8e ❤️ Like it: 2. 👏️⭐⭐⭐⭐ (excellent)
🏛️ License type: 🕊️ Libre 🎀️ Quality: 2. 🏅️⭐⭐⭐⭐ (good)
🏛️ License: GPL-3 ✨️ (temporary):
🐛️ Created: 2024-10-21 🐜️ Updated: 2025-05-11

📦️ Deliverables

📦️ Package name: jstest-gtk ..... 📦️ Arch: ✓
📄️ Source: ✓ ..... 📦️ RPM: ✓
⚙️ Generic binary: ..... 📦️ Deb: ✓
🌍️ Browser version: ..... 📦️ AppImage:
📱️ PDA support: ..... 📦️ Flatpak: ✓
✨️ Not use: ..... 📦️ Snap:

🚦 Entry status

📰 What's new?: 🔍️ Reviewed 👻️ Temporary:
💡 Lights on: ✓ 📰 Previous News: ✓
🎨️ Significant improvement: 💭️ New version published (to be updated):
🎖️ This work: 5 stars 🦺️ Work in progress:
👫️ Contrib.: goupildb & Louis 🚧️ Some work remains to be done:
🎰️ ID: 16452

📖️ Summary

📜️[en]: A libre and simple graphical tool for testing and setting up a gamepad. It provides a list of connected controllers and an interface to view, remap and/or calibrate their buttons and directional axes. Even if your gamepad is working fine, it may be worth using this tool to eliminate the unnecessary default dead zones that many gamepads use and which are a noticeable problem in some games. 📜️[fr]: Un outil graphique, simple et libre, permettant le test et le paramétrage d'une manette de jeu. Il fournit une liste des manettes de jeu connectées et une interface permettant de visualiser, remapper et/ou calibrer leurs boutons et axes de direction. Même si votre manette de jeu fonctionne bien, il peut être intéressant de faire appel à cet outil pour éliminer les zones mortes par défaut superflues que de nombreuses manettes de jeu utilisent et qui sont un problème notable dans certains jeux.

🎥️ Videos


🕯️ How To: (201509), (201508), (201503),

🕸️ Links

🏡️ Website & videos
Website: [Homepage] [Dev site] [Features/About] [Screenshots]
Videos: t(202xxx) gd(202xxx) gu(202xxx) r(202xxx) lp(202xxx) ht(201509) ht(201508) ht(201503) ht[fr](202xxx) ht[de](202xxx) ht[ru](202xxx) ht[pl](202xxx) ht[cz](202xxx) ht[sp](202xxx) ht[pt](202xxx) ht[it](202xxx) ht[tr](202xxx)]
Doc: [WIKI] [FAQ]
Updates: [RSS] [Changelog 1 2 3]

💰 Commercial
• (empty)

🍩️ Resources
(empty, license): [Homepage] [Dev site] 🎬️ g(202xxx)

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🦣️ Social
Devs (Jstest-gtk Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Ingo Ruhnke (Grumbel) [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [LibreGameWiki] [PressKit] [Interview 1(200704) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord] [PressKit]

🐝️ Related


📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: jstest-gtk
🦊️ What's: A libre GUI for testing and setting up a gamepad
🏡️ -
🐣️ https://github.com/Grumbel/jstest-gtk
🔖 #LinuxTool #Setup #Gamepad
📦️ #Libre #Arch #RPM #Deb #Flatpak
📕️ https://lebottinlinux.vps.a-lec.org/LO.html

🥁️ Update: 0.1.0
⚗️ Major release (Unstable) 🍏️
📌️ Changes: Major update
🦣️ From: 🛜️ https://github.com/Grumbel/jstest-gtk/releases.atom

🕯️https://www.youtube.com/embed/Ms4Pc5uZAc8
🕯️https://www.youtube.com/embed/DMlcIlXZPlQ

🕶️ A view of its UI (on my Linux PC, on a dark theme) with, on the bottom window, the hardware detected (my Logitech gamepad, my Wacom tablet and my Xbox Elite Wireless gamepad), the Xbox controller selected, and on the top window, the axes with the corresponding analog measurement and the buttons activated or not (none activated during the screenshot).

📚️ jstest-gtk is a libre and simple graphical tool for testing and setting up a gamepad. It provides a list of connected controllers and an interface to view, remap and/or calibrate their buttons and directional axes. Even if your gamepad is working fine, it may be worth using this tool to eliminate the unnecessary default dead zones that many gamepads use and which are a noticeable problem in some games.

📕 Description [en]

📜️ "A libre tools for testing (and setting up, for jstest-gtk) a gamepad" 📜️

sdl-jstest:

sdl-jstest and sdl2-jstest are simple programs that lets you find out how many joysticks SDL or SDL2 detected on your system, how many axes, buttons, hats and balls they have each. They also lets you test the joysticks by displaying the events they send or by displaying their current button, axis, hat or ball state. sdl-jstest is especially useful if you want to test your SDL_LINUX_JOYSTICK configuration.


jstest-gtk:

jstest-gtk is a simple joystick tester based on Gtk+. It provides you with a list of attached joysticks, a way to display which buttons and axis are pressed, a way to remap axis and buttons and a way to calibrate your joystick.

Even when your joystick is working mostly fine, you might want to give it a try, as the calibration lets you get rid of overlarge default deadzones that many joysticks use and that are a noticeable problem in some games.

jstest-gtk is released under the GPLv3+.

Update for 2018: The /dev/input/jsX interface that jstest-gtk uses is largely obsolete. Most newer software will use /dev/input/eventX, so neither the calibration nor the remapping functionality will have any effect.

evtest-qt is a similar piece of software that works with the new interface, however it won't be able to provide calibration or remapping either.


🍥️ Debian:

Joystick testing and configuration tool

jstest-gtk is a simple graphical joystick tester. It provides a list of attached joysticks, and for each one can display which buttons and axes are pressed, remap axes and buttons, and calibrate the device.

Even when your joystick is working mostly fine, you might want to give it a try, as the calibration lets you get rid of overlarge default deadzones that many joysticks use and which are a noticeable problem in some games.

Installing the joystick package in addition to this one will allow you to store your calibration settings and mappings and have the automatically restored.

📕 Description [fr]

Un outil de test et de paramétrage de manette de jeu, par la Jstest-gtk Team, initié par Ingo Ruhnke (Grumbel, auteur de Pingus et dessinateur pour SuperTux 2).

Jstest-gtk est un outil graphique, simple et libre, permettant le test et le paramétrage d'une manette de jeu. Il fournit une liste des manettes de jeu connectées et une interface permettant de visualiser, remapper et/ou calibrer leurs boutons et axes de direction. Même si votre manette de jeu fonctionne bien, il peut être intéressant de faire appel à cet outil pour éliminer les zones mortes par défaut superflues que de nombreuses manettes de jeu utilisent et qui sont un problème notable dans certains jeux.

Voir aussi / See also (test de réponse d'une manette de jeu): evtest-qt, jstest-gtk,


sdl-jstest:

sdl-jstest et sdl2-jstest sont des programmes simples qui vous permettent de savoir combien de joysticks SDL ou SDL2 ont été détectés sur votre système, combien d'axes, de boutons, de bonnets et de billes ils ont chacun. Ils vous permettent également de tester les joysticks en affichant les événements qu'ils envoient ou en affichant l'état actuel de leur bouton, axe, bonnet ou bille. sdl-jstest est particulièrement utile si vous souhaitez tester votre configuration SDL_LINUX_JOYSTICK.


jstest-gtk:

Jstest-gtk est un testeur de joystick simple basé sur Gtk+. Il vous fournit une liste des manettes attachées, un moyen d'afficher quels boutons et axes sont pressés, un moyen de remapper l'axe et les boutons et un moyen de calibrer votre joystick.

Même lorsque votre joystick fonctionne plutôt bien, vous pourriez vouloir l'essayer, car le calibrage vous permet de vous débarrasser des zones mortes par défaut superflues que de nombreux joysticks utilisent et qui sont un problème notable dans certains jeux.

jstest-gtk est publié sous licence GPLv3+.

Mise à jour pour 2018 : L'interface /dev/input/jsX que jstest-gtk utilise est largement obsolète. La plupart des logiciels plus récents utiliseront /dev/input/eventX, donc ni la calibration ni la fonctionnalité de remappage n'auront d'effet.

evtest-qt est un logiciel similaire qui fonctionne avec la nouvelle interface, mais il ne sera pas en mesure de fournir la calibration ou le remappage non plus.



🍥️ Debian (traduction du Bottin):

Outil de test et de configuration du joystick

jstest-gtk est un outil graphique et simple de test de joystick. Il fournit une liste des joysticks attachés, et pour chacun peut afficher quels boutons et axes sont pressés, et permet de remapper les axes et les boutons, et calibrer l'appareil.

Même si votre joystick fonctionne correctement, vous pouvez essayer, car le calibrage vous permet de vous débarrasser des zones mortes (deadzones) par défaut que beaucoup de joysticks utilisent et qui sont un problème notable dans certains jeux.

L'installation du paquet "joystick" en plus de celui-ci vous permettra de stocker vos réglages et mappages d'étalonnage et de les restaurer automatiquement.

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire

📦️ Installation à partir du/des paquet(s) Manjaro/Arch :
• Il(s) est/sont dans les dépôts Manjaro/Arch, il suffit d'installer le(s) paquet(s).

📦️ Installation à partir du paquet Debian/Ubuntu :
• Il(s) est/sont dans les dépôts Debian/Ubuntu, il suffit d'installer le(s) paquet(s).


📄️ Installation à partir du source

• Source non testé.


🚀️ LANCEMENT DE L'INTERFACE:

▸ Classique :
• Si vous l'avez installé à partir d'un paquet / dans l'un des répertoires système : [Alt+F2] jstest-gtk ou $ jstest-gtk
• Ou, rendez son binaire exécutable (clic droit sous votre gestionnaire de fichier) et cliquez dessus, ou dans son répertoire racine lancez : $ ./jstest-gtk
💡 Nota : si vous l'avez installé via votre gestionnaire de paquets et ne connaissez pas le nom précis du binaire, sélectionnez le paquet dans votre gestionnaire, et dans l'onglet “Fichiers” recherchez son nom dans l'arborescence d'installation (le binaire est généralement installé dans /usr/bin/).

🕵️ Test [fr]

📜️ Préambule :
⚬ 1ere édition : le 2 mai 2009 sous Debian. Par : goupildb. ⏱️ Durée du test : ? minutes. 🎯️ Objectif : Initialisation de l'entrée, tests et premières impressions.

⚬ Mise à jour : les 7 Mai 2025 et 10 Juin 2022 sous Manjaro. Par : goupildb. ⏱️ Durée du test : 10 minutes. 🎯️ Objectif : Mise à jour de son fonctionnement/évolution.

J'avais testé cet utilitaire lors de mon test du jeu Re-Volt (voir la fiche "Re-Volt I/O (with RVGL)") et en avait été très satisfait (ce qui m'a d'ailleurs poussé à créer cette fiche par la suite).

Et bien plus tard, je rencontrais des problèmes avec mon gamepad Logitech, qui ne répondait plus correctement, rendant certains jeux injouables.
Après avoir cherché un outil pour tenter de calibrer cette manette, à la fois dans les dépôts (j'avais trouvé sdl2-jstest qui ne s'installe pas à cause d'une dépendance et sdl-jstest qui ne fonctionne qu'en console, bof bof ... et je n'ai pas eu envie de tester jstest-gtk en me disant que ça devait être du même tonneau) et dans le Bottin (c'est une honte, je n'avais pas trouvé cette fiche :)), j'ai fini par jeter l'éponge d'autant que j'avais envie de me faire plaisir depuis longtemps.
Je me suis décidé à acheter une manette Xbox, et je trouve celle-ci géniale.
Et puis, tout de même, l'idée à continuée à poursuivre son chemin, j'ai à nouveau cherché sur internet, et suis tombé sur jstest-gtk avec une copie d'écran, et l'ai installé via les dépôts.
Et là je me dis que cette interface me dit quelque-chose, je regarde dans le Bottin et tombe sur ma fiche :)).

💻️ PC specs :
Linux distribution: Manjaro
Kernel: 6.14.4-1-MANJARO +iw (pour le wi-fi) + acpi_call-dkms + rapiddisk-dkms + uwurandom-git-dkms + v4l2loopback-dkms
Graphics driver: NVIDIA 570.144 (proprietary version, via Manjaro)
Desktop environment: X-Cinnamon (6.4.9) / Xorg 11.0 (21.1.16)

CPU: AMD Ryzen 7 2700X (3,7GHz, 8 cores)
Motherboard: MSI B450 GAMING PRO CARBON AC (RVB) + (zenpower-dkms + zenpower3-dkms + iwlwifi-ax101-dkms)
RAM: 32Go DDR4 (2x16GB)
Graphics card: GeForce RTX 2070 (TU106)
Hard disk: 1TB NVMe Force MP510 + 2x4TB Seagate Barracuda + 2x12TB Seagate IronWolf
Monitors: 1 x ASUS ROG Swift PG348Q (3440x1440) (The other died after a micro-power cut 😤️) + 1 x ASUS ROG Swift OLED PG48UQ 47,5" (3840x2160) (Get used to it 🦒️)
Webcam: Logitech HD Pro Webcam C920 (1080p@30FPS, stereo mic.)
Microphone: Samson G-Track pro Condenser
Keyboard: Keychron K1 Pro
MIDI keyboard: ARTURIA Minilab 3
Mouse: G-Lab Kult-Iridium (RVB)
Tablet: WACOM PTZ-930 (Intuos 3) (input-wacom-dkms-patched required)
Printer: brother MFC-L2800DW (brother-mfc-l2820dw (Print) + brscan5 (Scan) required).
Gamepads:
- (USB): Logitech Rumblepad (2 analog pads, one digital pad, + force feedback).
- (Bluetooth): Microsoft Xbox Elite Wireless Controller Series 2 (xpadneo-dkms required + Plugging & unplugging the gamepad to load the driver. If necessary, leave the gamepad connected)(drift if battery low)



🫕️ Installation :
▸ (✔ v. 0.1.0) Paquet Debian : FONCTIONNEL.
▸ (✔ v. 0.1.0) Paquet Arch/AUR : FONCTIONNEL.


🏗️ Réalisation :

‣ 📟️ Interface
🟢️ Une interface élégante, de qualité, ergonomique, claire/intuitive, complète, efficace,

‣ 🎮️ Contrôles
🔍️ (Microsoft Xbox Elite Wireless Controller Series 2), Bluetooth connected (detected as Xbox Elite Wireless Controller): ✔ Functional
🔍️ (Microsoft Xbox Elite Wireless Controller Series 2), USB connected (detected as Microsoft X-Box One Elite 2 pad): ✔ Functional
🔍️ (Logitech Rumblepad), USB connected (detected as Logitech RumblePad 2 USB): ✔ Functional



🧪️ Tests effectués :

‣ 🎮️ Logitech Rumblepad, USB connected (detected as Logitech RumblePad 2 USB) : Device: /dev/input/js0, Axes: 6, Button: 12
🟢️ Voilà l'interface que je cherchais.
🟢️ Je teste mon gamepad Logitech Rumblepad avec jstest-gtk et le constat est qu'en effet, le stick de droite présente par défaut des valeurs qui sont loin d'être neutres sur les axes 2 et 3.
🟢️ Je clique sur le bouton "Calibration" : c'est pratique, pas besoin de sélectionner les axes un à un, il demande d'actionner les axes sur leurs valeurs maximum (je fais le tour des axes en les poussant à fond à chaque extrémité) puis de valider, et c'est terminé. Le constat est que ces axes affichent à présent des valeurs correctes.
🟢️ Je quitte l'utilitaire et lance le jeu : Dstroy2 (sur itch.io): nickel, il fonctionne bien.

🟠️ Malheureusement, l'auteur de jstest-gtk précise sur son site : "L'interface /dev/input/jsX que jstest-gtk utilise est largement obsolète. La plupart des logiciels plus récents utiliseront /dev/input/eventX, donc ni la calibration ni la fonctionnalité de remappage n'auront d'effet.". Donc visiblement il ne faut pas s'attendre à des miracles avec certains jeux.
🟢️ En tout cas avec Dstroy2, il me donne satisfaction.

🟢️ De plus, même si avec des jeux récents utilisant dev/input/eventX le remappage n'aura pas d'effet, l'outil permet tout de même de voir que le joystick présente une dérive sur l'un de ses axes, et peut-être pour vous de voir qu'il est peut-être temps d'en changer. Donc cet outil peut encore rendre service, au moins pour cette fonctionnalité.

‣ 🔍️ (driver: xpadneo-dkms v.0.9.7 en Déc-24) :
‣ 🎮️ Microsoft Xbox Elite Wireless Controller Series 2, Bluetooth connected (detected as Xbox Elite Wireless Controller) : Device: /dev/input/js2, Axes: 9, Button: 15
‣ 🎮️ Microsoft Xbox Elite Wireless Controller Series 2) USB connected (detected as Microsoft X-Box One Elite 2 pad) : Device: /dev/input/js3, Axes: 8, Button: 15
🟢️ Ayant des soucis pour paramétrer ma manette Xbox avec des émulateurs, je me pose la question de sa bonne détection. jstest-gtk me permet de constater qu'elle n'est pas détectée de la même manière selon qu'elle est connectée en USB ou en Bluetooth.
⚪️ J'effectue une recherche sur le paramétrage d'une manette Xbox et tombe sur cette doc : [Xbox Controllers on Arch Linux]
1er constat : goupil2 (mon nom d'utilisateur) n'est pas dans le groupe utilisateur "input", je l'ajoute (via le "Centre de Contrôle" ➜ "Utilisateurs et Groupes", onglet Utilisateurs, je clique sur les groupes pour en ajouter un), je reboot pour sa prise en compte. Je ne remarque pas de différence.
2eme constat : cette même doc ci-avant suggère d'installer le driver xone-dkms (v.0.3 en Juin 2022) + xone-dongle-firmware (ce dernier contient les blobs binaires) (j'utilise actuellement [xpadneo-dkms v.0.9.7 en Déc-24] dont le site précise : Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S), et "it is fully functional but does only support the connection via Bluetooth as yet - more will follow." Et ici pas de blob mystérieux). Donc à priori, ma version actuelle est plus récente et plus performante.
Elle donne en console :
$ sudo dmesg --follow
(...)
[ 271.735722] input: Xbox Elite Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input29
[ 271.735943] input: Xbox Elite Wireless Controller Consumer Control as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input30
[ 271.736061] input: Xbox Elite Wireless Controller Keyboard as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input32
[ 271.736188] hid-generic 0005:045E:0B05.000A: input,hidraw9: BLUETOOTH HID v9.03 Gamepad [Xbox Elite Wireless Controller] on d4:3b:04:70:57:6e
[ 271.852194] loaded hid-xpadneo v0.9.7
[ 271.852230] xpadneo 0005:045E:0B05.000A: buggy firmware detected, please upgrade to the latest version
[ 271.852233] xpadneo 0005:045E:0B05.000A: pretending XB1S Windows wireless mode (changed PID from 0x0B05 to 0x028E)
[ 271.852236] xpadneo 0005:045E:0B05.000A: working around wrong SDL2 mappings (changed version from 0x00000903 to 0x00001130)
[ 271.852239] xpadneo 0005:045E:0B05.000A: report descriptor size: 1225 bytes
[ 271.852242] xpadneo 0005:045E:0B05.000A: fixing up report descriptor size
[ 271.852244] xpadneo 0005:045E:0B05.000A: fixing up Rx axis
[ 271.852246] xpadneo 0005:045E:0B05.000A: fixing up Ry axis
[ 271.852247] xpadneo 0005:045E:0B05.000A: fixing up Z axis
[ 271.852249] xpadneo 0005:045E:0B05.000A: fixing up Rz axis
[ 271.852251] xpadneo 0005:045E:0B05.000A: fixing up button mapping
[ 271.852736] xpadneo 0005:045E:0B05.000A: battery detected
[ 271.852745] xpadneo 0005:045E:0B05.000A: enabling compliance with Linux Gamepad Specification
[ 271.852747] xpadneo 0005:045E:0B05.000A: unmapping bogus buttons
[ 271.852819] input: Xbox Elite Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input33
[ 271.853000] xpadneo 0005:045E:0B05.000A: input,hidraw9: BLUETOOTH HID v11.30 Gamepad [Xbox Elite Wireless Controller] on d4:3b:04:70:57:6e
[ 271.853007] xpadneo 0005:045E:0B05.000A: controller quirks: 0x00000018
[ 271.853010] xpadneo 0005:045E:0B05.000A: testing weak motor: sustain 50ms release 50ms loop 2 wait 30ms
[ 272.183204] xpadneo 0005:045E:0B05.000A: testing strong motor: sustain 50ms release 50ms loop 2 wait 30ms
[ 272.513397] xpadneo 0005:045E:0B05.000A: testing trigger motors: sustain 50ms release 50ms loop 2 wait 30ms
[ 272.843609] xpadneo 0005:045E:0B05.000A: Xbox Elite Wireless Controller [f4:6a:d7:0f:8f:e9] connected
[ 273.218931] xpadneo 0005:045E:0B05.000A: battery registered
[ 354.370475] xpadneo 0005:045E:0B05.000A: detected broken XBE2 v1 packet format, please update the firmware
[ 354.370484] xpadneo 0005:045E:0B05.000A: switching left trigger to half range mode
[ 354.370489] xpadneo 0005:045E:0B05.000A: switching right trigger to half range mode
[ 1344.442949] xpadneo 0005:045E:0B05.000A: shutting down
[ 1345.799076] xpadneo 0005:045E:0B05.000A: reverting to original version (changed version from 0x00001130 to 0x00000903)
[ 1345.799086] xpadneo 0005:045E:0B05.000A: reverting to original product (changed PID from 0x028E to 0x0B05)
(...)


‣ 🔍️ (driver: xone-dkms (v.0.3 en Juin 2022) + xone-dongle-firmware) :
Pour en avoir le coeur net, je teste cette version. Je l'installe et redémarre le PC.
‣ 🎮️ Microsoft Xbox Elite Wireless Controller Series 2, Bluetooth connected (detected as Xbox Elite Wireless Controller) : Device: /dev/input/js2, Axes: 10, Button: 31
🟠️ Les boutons sont dédoublés et le stick gauche sur l'axe horizontal aussi (ce qui explique l'axe et les boutons supplémentaires).
🟢️ Le débranchement du câble USB suivi de la déconnexion sur l'interface Bluetooth de Manjaro et sur le gamepad lui-même (on laisse le doigt appuyé sur le symbole de la manette), puis la reconnexion fonctionne bien.
🟠️ Les gachettes situées sous le gamepad ne sont plus détectées.
‣ 🎮️ Microsoft Xbox Elite Wireless Controller Series 2) USB connected (detected as Microsoft X-Box) : Device: /dev/input/js3, Axes: 8, Button: 11
🟠️ Rien ne fonctionne, en dépit de sa détection, les sticks comme les boutons ne réagissent pas.
Elle donne en console :
$ sudo dmesg --follow
(...)
[ 209.066478] input: Xbox Elite Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input29
[ 209.066669] input: Xbox Elite Wireless Controller Consumer Control as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input30
[ 209.066782] input: Xbox Elite Wireless Controller Keyboard as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input32
[ 209.066913] hid-generic 0005:045E:0B05.000A: input,hidraw9: BLUETOOTH HID v9.03 Gamepad [Xbox Elite Wireless Controller] on d4:3b:04:70:57:6e
[ 212.089757] microsoft 0005:045E:0B05.000A: unknown main item tag 0x0
[ 212.089907] input: Xbox Elite Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B05.000A/input/input33
[ 212.090032] microsoft 0005:045E:0B05.000A: input,hidraw9: BLUETOOTH HID v9.03 Gamepad [Xbox Elite Wireless Controller] on d4:3b:04:70:57:6e
[ 574.066307] usb 5-1.1: new full-speed USB device number 10 using xhci_hcd
[ 574.201580] usb 5-1.1: New USB device found, idVendor=045e, idProduct=0b00, bcdDevice= 4.07
[ 574.201589] usb 5-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 574.201594] usb 5-1.1: Product: Controller
[ 574.201598] usb 5-1.1: Manufacturer: Microsoft
[ 574.201602] usb 5-1.1: SerialNumber: 3032363330303736353435313431
[ 574.510651] usb 5-1.1: reset full-speed USB device number 10 using xhci_hcd
[ 574.671254] usbcore: registered new interface driver xone-wired
[ 574.900341] input: Microsoft Xbox Controller as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.0/input/input34
[ 575.423458] input: Microsoft Xbox Chatpad as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.1/input/input35
[ 575.423733] input: Microsoft Xbox Chatpad as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.1/0003:045E:0B02.000B/input/input36
[ 575.451414] hid-generic 0003:045E:0B02.000B: input,hidraw9: USB HID v1.01 Keyboard [Microsoft Xbox Chatpad] on gip0.1/input1
[ 851.855299] usb 5-1.1: USB disconnect, device number 10
[ 916.549348] microsoft 0005:045E:0B05.000C: unknown main item tag 0x0
[ 916.549718] input: Xbox Elite Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B05.000C/input/input37
[ 916.549961] microsoft 0005:045E:0B05.000C: input,hidraw9: BLUETOOTH HID v9.03 Gamepad [Xbox Elite Wireless Controller] on d4:3b:04:70:57:6e
[ 1173.873909] usb 5-1.1: new full-speed USB device number 11 using xhci_hcd
[ 1174.009282] usb 5-1.1: New USB device found, idVendor=045e, idProduct=0b00, bcdDevice= 4.07
[ 1174.009286] usb 5-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1174.009289] usb 5-1.1: Product: Controller
[ 1174.009291] usb 5-1.1: Manufacturer: Microsoft
[ 1174.009293] usb 5-1.1: SerialNumber: 3032363330303736353435313431
[ 1174.222764] usb 5-1.1: reset full-speed USB device number 11 using xhci_hcd
[ 1174.675407] input: Microsoft Xbox Controller as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.0/input/input38
[ 1175.191162] input: Microsoft Xbox Chatpad as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.1/input/input39
[ 1175.191610] input: Microsoft Xbox Chatpad as /devices/pci0000:00/0000:00:07.1/0000:1d:00.3/usb5/5-1/5-1.1/5-1.1:1.0/gip0/gip0.1/0003:045E:0B02.000D/input/input40
[ 1175.237046] hid-generic 0003:045E:0B02.000D: input,hidraw9: USB HID v1.01 Keyboard [Microsoft Xbox Chatpad] on gip0.1/input1
(...)
↪ xone-dkms + xone-dongle-firmware : work w/ wireless mode not on USB
↪ La doc est ancienne, xpadneo-dkms est bien plus récent et me semble bien plus performant et fonctionnel.

Autres alternatives regardées (et en dépôt Arch) :
[xpad-dkms_git] : testé hier et n'avait pas fonctionné.
[xboxdrv] : idem. Sur le site ils précisent "The driver portion of this project is deprecated in favor of kernel drivers. However, this program is able to remap evdev input to an emulated Xbox controller. This continues to be useful for programs that support only Xbox gamepads. "
[xbox-generic-controller] : testé hier et n'avait pas fonctionné. Sur le site ils précisent "Fix for generic XBox-like USB gamepads that are recognized but not functional.". Pas de fonctionnement en Bluetooth.
↪ xpadneo-dkms me semble être la meilleure alternative aujourd'hui.


‣ 🔍️ (driver: xpadneo-dkms v.0.9.7 en Déc-24) : en débranchant la manette Logitech et en connectant en Bluetooth la manette Xbox, en jouant avec celle-ci, puis en reconnectant la manette Logitech, les périphériques ont changés :
‣ 🎮️ Microsoft Xbox Elite Wireless Controller Series 2, Bluetooth connected (detected as Xbox Elite Wireless Controller) : Device: /dev/input/js0, Axes: 9, Button: 15
‣ 🎮️ Logitech Rumblepad, USB connected (detected as Logitech RumblePad 2 USB) : Device: /dev/input/js2, Axes: 6, Button: 12
↪ L'ordre des périphériques n'est donc pas immuable, et peut-être modifié en débranchant/rebranchant les périphériques dans l'ordre souhaité.


🧭️ Conclusion :

🕵️ Impression globale : 👍️
❤️ Like it: 👏️⭐⭐⭐⭐ (excellent)
🎀️ Quality: 🏅️⭐⭐⭐⭐ (good)

🟢️ Un outil très bien conçu et agréable, qui pourra vous permettre d'utiliser encore un peu votre ancien Joystick à la dérive ;) ou au moins de constater qu'il fonctionne correctement ... ou pas.
🟢️ Il permet aussi de détecter des incohérences de détection de gamepad lorsque vous avez un doute (ici, il aura été le point de départ d'un test de drivers afin de retenir le meilleur en cas de doute).
👏️ ❤️ Un grand bravo et merci à ses auteurs !