Не знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в 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-пользователя и с гордостью сказать:
Смотри, как я могу!
Автор: maxidler