Multi-Pointer X

Multi-Pointer X neboli MPX je modifikací serveru X.Org, systému X Window System . MPX umožňuje současné použití několika nezávislých ukazatelů ve stejném okenním systému. MPX umožňuje provoz určitých aplikací bez jakýchkoli modifikací. Většina grafických aplikací je navržena s předpokladem, že existuje pouze jeden ukazatel.

MPX umožňuje například trenérovi ukázat svému studentovi, co má dělat, pomocí druhé myši místo toho, aby pohyboval prstem po obrazovce.

Zde je kód k vytvoření druhého ukazatele: Mám několik fyzických myší a k ovládání nového kurzoru použiji ‚nano myš ':

Nejprve detekujte hardware. V následujícím textu použiji „id“ dotyčného příkladu: přizpůsobte čísla v příkazových řádcích vašemu případu!

[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)]

Dále vytvořte nový posuvník (který pojmenuji Nový) a znovu zobrazte rozložení hardwaru.

[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)]

Nakonec připojte dotyčnou myš k neaktivnímu ukazateli, který byl právě zobrazen na obrazovce.

[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)]

Tady ! Nano myš ovládá nový kurzor! Jak se zbavit kurzoru:

[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 provedený na Mandriva 2010.2 (po # urpmi xinput) Více informací v man xinput Test proběhl úspěšně na OpenSUSE 11.4 a 12.1 (x86_64).