Multi-Pointer X

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir MPX.
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article relève du guide pratique, ce qui n'est pas de nature encyclopédique (juillet 2015).

Vous pouvez reformuler les passages concernés, ou remplacer ce bandeau soit par {{pour Wikibooks}}, {{pour Wikiversité}}, ou {{pour Wikivoyage}}, afin de demander le transfert vers un projet frère plus approprié.

Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ne cite pas suffisamment ses sources (octobre 2012).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

Multi-Pointer X, ou MPX, est une modification de X.Org le serveur du X Window System. MPX permet l'utilisation simultanée de plusieurs pointeurs indépendants dans le même système de fenêtrage. MPX permet le fonctionnement de certaines applications sans aucune modification. La plupart du temps les applications graphiques sont conçues en supposant l'existence d'un seul pointeur.

MPX permet, par exemple, à un formateur de montrer à son élève ce qu'il doit faire en utilisant une deuxième souris au lieu de promener son doigt sur l'écran.

Voilà le code pour créer un deuxième pointeur : J'ai plusieurs souris physiques et je vais utiliser la 'nano mouse' pour contrôler le nouveau curseur :

D'abord, détecter le matériel. Dans la suite, j'utiliserai les "id" de l'exemple en question : adaptez les nombres dans les lignes de commandes à votre cas !

  [moviuro@kamino:~]$ xinput list
  ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Souris de Moviuro                         id=6    [slave  pointer  (2)]
  ⎜   ↳ MLK 2.4G wireless nano mouse              id=15   [slave  pointer  (2)]
  ⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=7    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=8    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=9    [slave  keyboard (3)]
      ↳ Sleep Button                              id=10   [slave  keyboard (3)]
      ↳ Power Button                              id=11   [slave  keyboard (3)]
      ↳ HD Video WebCam                           id=12   [slave  keyboard (3)]
      ↳ Video Bus                                 id=13   [slave  keyboard (3)]
      ↳ Power Button                              id=14   [slave  keyboard (3)]

Ensuite, créer un nouveau curseur (que je nomme New) et réafficher la disposition du matériel.

  [moviuro@kamino:~]$ xinput create-master New
  [moviuro@kamino:~]$ xinput list
  ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Souris de Moviuro                         id=6    [slave  pointer  (2)]
  ⎜   ↳ MLK 2.4G wireless nano mouse              id=15   [slave  pointer  (2)]
  ⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=7    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=8    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=9    [slave  keyboard (3)]
      ↳ Sleep Button                              id=10   [slave  keyboard (3)]
      ↳ Power Button                              id=11   [slave  keyboard (3)]
      ↳ HD Video WebCam                           id=12   [slave  keyboard (3)]
      ↳ Video Bus                                 id=13   [slave  keyboard (3)]
      ↳ Power Button                              id=14   [slave  keyboard (3)]
  ⎡ New pointer                                   id=17   [master pointer  (18)]
  ⎜   ↳ New XTEST pointer                         id=19   [slave  pointer  (17)]
  ⎣ New keyboard                                  id=18   [master keyboard (17)]
      ↳ New XTEST keyboard                        id=20   [slave  keyboard (18)]

Enfin, attacher la souris en question au pointeur inactif qui vient de s'afficher à l'écran.

  [moviuro@kamino:~]$ xinput reattach 15 17
  [moviuro@kamino:~]$ xinput list
  ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Souris de Moviuro                          id=6    [slave  pointer  (2)]
  ⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=7    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=8    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=9    [slave  keyboard (3)]
      ↳ Sleep Button                              id=10   [slave  keyboard (3)]
      ↳ Power Button                              id=11   [slave  keyboard (3)]
      ↳ HD Video WebCam                           id=12   [slave  keyboard (3)]
      ↳ Video Bus                                 id=13   [slave  keyboard (3)]
      ↳ Power Button                              id=14   [slave  keyboard (3)]
  ⎡ New pointer                                   id=17   [master pointer  (18)]
  ⎜   ↳ MLK 2.4G wireless nano mouse              id=15   [slave  pointer  (17)]
  ⎜   ↳ New XTEST pointer                         id=19   [slave  pointer  (17)]
  ⎣ New keyboard                                  id=18   [master keyboard (17)]
      ↳ New XTEST keyboard                        id=20   [slave  keyboard (18)]

Voilà ! La nano mouse contrôle le nouveau curseur ! Pour se débarrasser du curseur :

  [moviuro@kamino:~]$ xinput remove-master 17
  [moviuro@kamino:~]$ xinput list
  ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Souris de Moviuro                          id=6    [slave  pointer  (2)]
  ⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=7    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=8    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=9    [slave  keyboard (3)]
      ↳ Sleep Button                              id=10   [slave  keyboard (3)]
      ↳ Power Button                              id=11   [slave  keyboard (3)]
      ↳ HD Video WebCam                           id=12   [slave  keyboard (3)]
      ↳ Video Bus                                 id=13   [slave  keyboard (3)]
      ↳ Power Button                              id=14   [slave  keyboard (3)]
  ∼ MLK 2.4G wireless nano mouse                  id=15   [floating slave]
  [moviuro@kamino:~]$ xinput reattach 15 2
  [moviuro@kamino:~]$ xinput list
  ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Souris de Moviuro                         id=6    [slave  pointer  (2)]
  ⎜   ↳ MLK 2.4G wireless nano mouse              id=15   [slave  pointer  (2)]
  ⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=7    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=8    [slave  keyboard (3)]
      ↳ Apple, Inc Apple Keyboard                 id=9    [slave  keyboard (3)]
      ↳ Sleep Button                              id=10   [slave  keyboard (3)]
      ↳ Power Button                              id=11   [slave  keyboard (3)]
      ↳ HD Video WebCam                           id=12   [slave  keyboard (3)]
      ↳ Video Bus                                 id=13   [slave  keyboard (3)]
      ↳ Power Button                              id=14   [slave  keyboard (3)]

Test effectués sur Mandriva 2010.2 (après un # urpmi xinput) Plus d'infos dans man xinput Test effectués avec succès sur OpenSUSE 11.4 et 12.1 (x86_64).