Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

neskolko_ukazatelej_myshi [2013/11/22 14:16] (текущий)
Строка 1: Строка 1:
 +====== Несколько указателей мыши) ======
  
 +Не знаю зачем мне это пригодится,​ но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент,​ когда я подключил вторую мышь, т.е. третье устройство управления указателем. ​
 +
 +
 +Сколько мышей, столько и курсоров,​ но как?
 +
 +
 +Давайте посмотрим — что скажет нам xinput:
 +
 +<code bash>$ xinput list
 +⎡ Virtual core pointer ​                         id=2    [master pointer ​ (3)]
 +⎜   ↳ Virtual core XTEST pointer ​               id=4    [slave ​ pointer ​ (2)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=10 ​  ​[slave ​ pointer ​ (2)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=11 ​  ​[slave ​ pointer ​ (2)]
 +⎜   ↳ Genius 2.4G Wireless Mouse                id=12   ​[slave ​ pointer ​ (2)]
 +⎜   ↳ SynPS/2 Synaptics TouchPad ​               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)]
 +    ↳ Video Bus                                 ​id=7 ​   [slave ​ keyboard (3)]
 +    ↳ Sleep Button ​                             id=8    [slave ​ keyboard (3)]
 +    ↳ Villem ​                                   id=9    [slave ​ keyboard (3)]
 +    ↳ AT Translated Set 2 keyboard ​             id=13   ​[slave ​ keyboard (3)]
 +    ↳ HP WMI hotkeys ​                           id=15   ​[slave ​ keyboard (3)]
 +</​code>​
 +
 +Я честно не знаю — почему USB-свисток от Logitech — выводится дважды. Буду благодарен,​ если кто-то подскажет — почему. ​
 +
 +Но я отвлекся! Из выхлопа видно, что у нас всего 4 мыши:
 +  Виртуальная
 +  Logitech
 +  Genius
 +  Touchpad
 +
 +
 +Для того, чтобы увидеть второй курсор создадим группу:​
 +<code bash>​xinput create-master logitech</​code>​
 +
 +
 +Теперь на экране ДВА указателя мыши, но второй пока неподвижен,​ а управляют все три устройства одним и тем же указателем. Давайте скажем X-серверу,​ что Logitech будет управлять тем самым неподвижным до сих пор курсором. Для этого еще раз посмотрим на
 +<code bash>
 +$ xinput list
 +⎡ Virtual core pointer ​                         id=2    [master pointer ​ (3)]
 +⎜   ↳ Virtual core XTEST pointer ​               id=4    [slave ​ pointer ​ (2)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=10 ​  ​[slave ​ pointer ​ (2)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=11 ​  ​[slave ​ pointer ​ (2)]
 +⎜   ↳ Genius 2.4G Wireless Mouse                id=12   ​[slave ​ pointer ​ (2)]
 +⎜   ↳ SynPS/2 Synaptics TouchPad ​               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)]
 +    ↳ Video Bus                                 ​id=7 ​   [slave ​ keyboard (3)]
 +    ↳ Sleep Button ​                             id=8    [slave ​ keyboard (3)]
 +    ↳ Villem ​                                   id=9    [slave ​ keyboard (3)]
 +    ↳ AT Translated Set 2 keyboard ​             id=13   ​[slave ​ keyboard (3)]
 +    ↳ HP WMI hotkeys ​                           id=15   ​[slave ​ keyboard (3)]
 +⎡ logitech pointer ​                             id=16   ​[master pointer ​ (17)]
 +⎜   ↳ logitech XTEST pointer ​                   id=18   ​[slave ​ pointer ​ (16)]
 +⎣ logitech keyboard ​                            ​id=17 ​  ​[master keyboard (16)]
 +    ↳ logitech XTEST keyboard ​                  ​id=19 ​  ​[slave ​ keyboard (17)]      ​
 +</​code>​
 +
 +Теперь можно различить две группы устройств ввода. «Virtual core» и «logitech»,​ однако мы видим что устройство logitech до сих пор входит в группу Virtual core. Исправим ситуацию — присоединим устройстов с ID=10 (Logitech) к группе с ID=16 (logitech)
 +<code bash>​xinput reattach 10 16</​code>​
 +
 +
 +Теперь мышь от Logitech управляет ранее неподвижным курсором.
 +
 +Создадим еще одну группу и присоединим к ней наш тачпад:​
 +<code bash>
 +$ xinput create-master touchpad
 +$ xinput list                                                                                                                                                                           
 +⎡ Virtual core pointer ​                         id=2    [master pointer ​ (3)]                                                                                                                             
 +⎜   ↳ Virtual core XTEST pointer ​               id=4    [slave ​ pointer ​ (2)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=11 ​  ​[slave ​ pointer ​ (2)]
 +⎜   ↳ Genius 2.4G Wireless Mouse                id=12   ​[slave ​ pointer ​ (2)]
 +⎜   ↳ SynPS/2 Synaptics TouchPad ​               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)]
 +    ↳ Video Bus                                 ​id=7 ​   [slave ​ keyboard (3)]
 +    ↳ Sleep Button ​                             id=8    [slave ​ keyboard (3)]
 +    ↳ Villem ​                                   id=9    [slave ​ keyboard (3)]
 +    ↳ AT Translated Set 2 keyboard ​             id=13   ​[slave ​ keyboard (3)]
 +    ↳ HP WMI hotkeys ​                           id=15   ​[slave ​ keyboard (3)]
 +⎡ logitech pointer ​                             id=16   ​[master pointer ​ (17)]
 +⎜   ↳ Logitech USB Receiver ​                    ​id=10 ​  ​[slave ​ pointer ​ (16)]
 +⎜   ↳ logitech XTEST pointer ​                   id=18   ​[slave ​ pointer ​ (16)]
 +⎣ logitech keyboard ​                            ​id=17 ​  ​[master keyboard (16)]
 +    ↳ logitech XTEST keyboard ​                  ​id=19 ​  ​[slave ​ keyboard (17)]
 +⎡ touchpad pointer ​                             id=20   ​[master pointer ​ (21)]
 +⎜   ↳ touchpad XTEST pointer ​                   id=22   ​[slave ​ pointer ​ (20)]
 +⎣ touchpad keyboard ​                            ​id=21 ​  ​[master keyboard (20)]
 +    ↳ touchpad XTEST keyboard ​                  ​id=23 ​  ​[slave ​ keyboard (21)]
 +$ xinput reattach 14 20
 +</​code>​
 +
 +После этого мы видим три указателя мыши и управляем каждым с отдельного устройства!
 +
 +Главный вопрос - а нахрена я это сделал?​)
neskolko_ukazatelej_myshi.txt · Последние изменения: 2013/11/22 14:16 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика