É possível ter dois focos / focos diferentes no X windows? (Basicamente usando dois mouses e teclados com uma máquina física simultaneamente. Se sim, como isso é feito?
Respostas:
1 para resposta № 1Com servidores Xorg recentes, sim. Você precisa usar o XInput Extension versão 2.0 ou mais recente. Você também precisará de um gerenciador de janelas capaz de fazer isso, e eu não sei qual dos WMs modernos já pode fazer isso.
Documentação:
- http://cgit.freedesktop.org/xorg/proto/inputproto/
- http://cgit.freedesktop.org/xorg/lib/libXi/
- http://who-t.blogspot.com/ (ele é o cara que escreveu tudo isso, o blog dele está cheio de coisas para aprender)
No Debian Testing eu posso até obter dois ponteiros e começar a usá-los agora (um controlado pelo mouse USB e o outro pelo touchpad):
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"