Два фокуса на X Windows

Возможно ли иметь два разных фокуса/фокуса на окнах X? (В основном используется две мыши и клавиатуры одновременно с одной физической машиной. Если да, то как это достигается?


person cat pants    schedule 28.02.2012    source источник
comment
На одном компьютере или на одном X-сервере? Обычный случай, когда на этой машине работает только один X-сервер, и это не единственная возможность: может быть много X-серверов, работающих одновременно и независимо. См. также: en.wikipedia.org/wiki/Multiseat_configuration#GNU.2FLinux Насчет двух фокусов на одном X Window сервере - нет.   -  person Piskvor left the building    schedule 28.02.2012
comment
Одна физическая машина И один X-сервер. Два курсора/фокуса на одном X-сервере.   -  person cat pants    schedule 28.02.2012
comment
Я думаю, что несколько лет назад я видел взлом/прототип нескольких курсоров; но был только один фокус IIRC. Кажется, это он: multicursor-wm.sourceforge.net   -  person Piskvor left the building    schedule 28.02.2012


Ответы (1)


С последними серверами Xorg, да. Вам необходимо использовать расширение XInput версии 2.0 или новее. Вам также понадобится оконный менеджер, способный это сделать, и я не уверен, какой из современных WM уже может это сделать.

Документация:

В Debian Testing я даже могу получить два указателя и начать их использовать прямо сейчас (один управляется USB-мышью, а другой — тачпадом):

pzanoni@vicky:~$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB Optical Mouse                         id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     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)]
    ↳ Lite-On Technology USB Productivity Option Keyboard( has the hub in # 1 )     id=9    [slave  keyboard (3)]
    ↳ Lite-On Technology USB Productivity Option Keyboard( has the hub in # 1 )     id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=15   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=16   [slave  keyboard (3)]
pzanoni@vicky:~$ xinput --create-master my 1 1
pzanoni@vicky:~$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB Optical Mouse                         id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     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)]
    ↳ Lite-On Technology USB Productivity Option Keyboard( has the hub in # 1 )     id=9    [slave  keyboard (3)]
    ↳ Lite-On Technology USB Productivity Option Keyboard( has the hub in # 1 )     id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=15   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=16   [slave  keyboard (3)]
⎡ my pointer                                id=17   [master pointer  (18)]
⎜   ↳ my XTEST pointer                          id=19   [slave  pointer  (17)]
⎣ my keyboard                               id=18   [master keyboard (17)]
    ↳ my XTEST keyboard                         id=20   [slave  keyboard (18)]
pzanoni@vicky:~$ xinput --reattach "SynPS/2 Synaptics TouchPad" "my pointer"
person pzanoni    schedule 03.04.2012
comment
Чувак, ты правишь. Благодаря тонну!! - person cat pants; 12.04.2012