MPX : Multi-Pointer X

MPX est un acronyme de multi-pointer X Server (Serveur X à multi-pointage). MPX est une modification de X.Org implantée dans le système X Window. Il permet d'utiliser plusieurs pointeurs indépendants au niveau du système de fenêtrage. Contrairement à beaucoup d'autres applications de multi-pointage, MPX permet à de nombreuses applications X Window de s'exécuter sans aucune modification. Il permet entre autre à plusieurs utilisateurs d'exploiter simultanément des applications différentes.

MPX est inclus dans Xorg il n'y a rien à installer.

Depuis une console, on regarde la configuration actuelle :

xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]

Il existe 1 pointeur virtuel1) et 1 clavier virtuel2) qui sont liés.

On remarque que mes deux souris sont associées au seul pointeur.

On ajoute donc un nouveau pointeur :

xinput create-master New

On regarde ce que ça donne, toujours par :

xinput list

À la fin nous retrouvons un nouveau couple clavier/souris.

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]
⎡ New pointer                             	id=15	[master pointer  (16)]
⎜   ↳ New XTEST pointer                       	id=17	[slave  pointer  (15)]
⎣ New keyboard                            	id=16	[master keyboard (15)]
    ↳ New XTEST keyboard                      	id=18	[slave  keyboard (16)]
Vous devez voir un nouveau pointeur inactif sur votre écran.

Maintenant, on va prendre le Zalman FPSGUN Mouse par son identifiant « id=8 » et l'associer à notre nouveau pointeur « id=15 ».

xinput reattach 8 15

Ce qui nous donne comme configuration de xinput :

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse         	id=9	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=11	[slave  pointer  (2)]
⎜   ↳ btnx mouse                              	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ btnx keyboard                           	id=13	[slave  keyboard (3)]
⎡ New pointer                             	id=15	[master pointer  (16)]
⎜   ↳ Zalman FPSGUN Mouse                     	id=8	[slave  pointer  (15)]
⎜   ↳ New XTEST pointer                       	id=17	[slave  pointer  (15)]
⎣ New keyboard                            	id=16	[master keyboard (15)]
    ↳ New XTEST keyboard                      	id=18	[slave  keyboard (16)]
Le nouveau curseur doit bouger avec votre seconde souris.

Pour annuler tout ça, on réaffecte notre seconde souris à notre premier curseur « id=2 » :

xinput reattach 8 2

Et on supprime notre curseur inutile (toujours id=15) :

-xinput remove-master 15
Le curseur inutile doit avoir disparu !
Rien n'empêche d'appeler votre curseur comme vous le voulez au lieu de « New ».

Si vous souhaitez une interface graphique à xinput installez le paquet pyhoca-gui.

Il se peut que votre deuxième curseur ne soit alloué à aucune souris, pas de solution… ( voir ce fils de discussion du forum).


Contributeurs : Ignace72


1)
Virtual core pointer
2)
Virtual core keyboard
  • mpx.txt
  • Dernière modification: Le 11/09/2022, 11:42
  • par moths-art