Multi Pointer Xorg: travaillez deux fois plus vite ! 1

Multi Pointer Xorg: travaillez deux fois plus vite !

Cela existe depuis déjà quelques mois, mais l’implémentation est désormais faite en natif dans Xorg.

Apparu avec Apple et l’Iphone (et là, je vois Nicolas redresser la tête fièrement et arborer un magnifique sourire 🙂 ), le multitouch est une technologie qui permet de gérer plusieurs doigts sur une surface tactile. Microsoft s’est adapté avec Windows 7, les touchpad Synaptics sont tous désormais multitouch (défilement à deux doigts) et Linux n’a pas échappé à la règle mais cela va au delà.

Deux doigts, c’est pointer à deux endroits différents. Depuis plus de 20 ans, le doigt c’est la souris. Deux doigts, c’est donc deux souris.

Sous Linux, xorg (le gestionnaire du mode graphique) a su évoluer et propose donc le multitouch depuis la version 1.7. Et en branchant deux souris, on peut donc avoir…. deux pointeurs ! La chose peut s’exporter aussi aux claviers multiples.

Tout se fait à partir de la commande xinput.

Voici par exemple ce que me liste la commande xinput list :

mathieu@debian:~$ xinput list
⎡ Virtual core pointer                                                                id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                                               id=4 [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)    id=8 [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)]
↳ Apple, Inc Apple Keyboard                                                   id=9 [slave  keyboard (3)]
∼ Apple, Inc Apple Keyboard                                                   id=10 [floating slave]

(oui Nicolas, j’ai un clavier Apple et j’assume totalement 🙂 )

On constate un premier groupe nommé Virtual core. Un groupe se compose toujours de deux sections : pointer (souris) et keyboard (clavier).
Ma souris Microsoft (Martial, c’est pour toi !) est affectée au groupe Virtual core ainsi que le pointeur de test, et toutes les ressources clavier au même groupe.
Maintenant, je branche une autre souris en USB. Le pointeur de l’écran réagit aux deux souris :

mathieu@debian:~$ xinput list
⎡ Virtual core pointer id=2[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer id=4[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)id=8[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Mouse id=11[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)]
↳ Apple, Inc Apple Keyboard id=9[slave  keyboard (3)]
∼ Apple, Inc Apple Keyboard id=10[floating slave]

Tout s’explique ! La nouvelle souris Logitech a été ajoutée au groupe Virtual core.
Pour définir des nouveaux éléments, on va créer un groupe :
mathieu@debian:~$ xinput create-master second

Et de suite un nouveau pointeur apparait à l’écran. Cependant, il ne réagit toujours pas. On va donc affecter la souris à ce nouveau groupe.

mathieu@debian:~$ xinput list
⎡ Virtual core pointer id=2[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer id=4[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)id=8[slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Mouse id=11[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)]
↳ Apple, Inc Apple Keyboard id=9[slave  keyboard (3)]
⎡ second pointer id=12[master pointer  (13)]
⎜   ↳ second XTEST pointer id=14[slave  pointer  (12)]
⎣ second keyboard id=13[master keyboard (12)]
↳ second XTEST keyboard id=15[slave  keyboard (13)]
∼ Apple, Inc Apple Keyboard id=10[floating slave]
Le nouveau groupe comporte l’ID 12, la souris à affecter a le 11, on tape donc :
mathieu@debian:~$ xinput reattach 11 12
Et voilà ! Chaque pointeur réagit bien à une souris différente ! Notez la possibilité de faire la même chose avec deux claviers. Vous pouvez donc vous retrouver à deux personnes devant le même ordinateur à utiliser deux fenêtres différentes.
mathieu@debian:~$ xinput list
⎡ Virtual core pointer id=2[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer id=4[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)id=8[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)]
↳ Apple, Inc Apple Keyboard id=9[slave  keyboard (3)]
⎡ second pointer id=12[master pointer  (13)]
⎜   ↳ Logitech USB-PS/2 Mouse id=11[slave  pointer  (12)]
⎜   ↳ second XTEST pointer id=14[slave  pointer  (12)]
⎣ second keyboard id=13[master keyboard (12)]
↳ second XTEST keyboard id=15[slave  keyboard (13)]
∼ Apple, Inc Apple Keyboard id=10[floating slave]

Il me reste cependant quelques imperfections à corriger pour réussir à déclarer le même clavier dans deux groupes différents. Amis lecteurs de Synergeek, à vos clavier(s) !

A propos Mathieu Passenaud

Passionné de technologies Web, diplômé d'informatique embarquée et actuellement dans le développement d'applications en Cloud Computing.

Je vous propose également...

Memento - Centos revenir en arrière après un yum update 2

Memento – Centos revenir en arrière après un yum update

Depuis quelques mois, j’utilise un serveur dédié chez EvxOnline, un très bon hébergeur et très …

Memento - Problème https et certificate error 3

Memento – Problème https et certificate error

J’utilise depuis plus d’un an un outil d’administration de sites web appelé i-MSCP (pour Internet …