Linux :: два, три, пять… указателей мыши

от автора

Не знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент, когда я подключил вторую мышь, т.е. третье устройство управления указателем.

Сколько мышей, столько и курсоров, но как?

Давайте посмотрим — что скажет нам xinput:

max 23:20:19   ~  $ 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)] 

Я честно не знаю — почему USB-свисток от Logitech — выводится дважды. Буду благодарен, если кто-то подскажет — почему.

Но я отвлекся! Из выхлопа видно, что у нас всего 4 мыши:

  • Виртуальная
  • Logitech
  • Genius
  • Touchpad

Для того, чтобы увидеть второй курсор создадим группу:

xinput create-master logitech

Теперь на экране ДВА указателя мыши, но второй пока неподвижен, а управляют все три устройства одним и тем же указателем. Давайте скажем X-серверу, что Logitech будет управлять тем самым неподвижным до сих пор курсором. Для этого еще раз посмотрим на

max 23:23:40   ~  $ 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)]       

Теперь можно различить две группы устройств ввода. «Virtual core» и «logitech», однако мы видим что устройство logitech до сих пор входит в группу Virtual core. Исправим ситуацию — присоединим устройстов с ID=10 (Logitech) к группе с ID=16 (logitech)

xinput reattach 10 16 

Теперь мышь от Logitech управляет ранее неподвижным курсором.

Создадим еще одну группу и присоединим к ней наш тачпад:

                                                               max 23:30:30   ~  $ xinput create-master touchpad max 23:32:35   ~  $ 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)] max 23:32:39   ~  $ xinput reattach 14 20 max 23:32:53   ~  $  

После этого мы видим три указателя мыши и управляем каждым с отдельного устройства!

Чем это может быть полезно — пока не придумал. Just for fun — посмотреть в изумленные глаза Windows-пользователя и с гордостью сказать:

Смотри, как я могу! 

ссылка на оригинал статьи http://habrahabr.ru/post/165385/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *