| 1 | = Multiple Seat Support (Multi-Seat) = |
| 2 | |
| 3 | == Introduction == |
| 4 | |
| 5 | HelenOS GUI has multi-seat support. This allows to make good use of multiple mice and keyboards connected to the computer (which is easy to do with USB). Unlike multi-head, where there are several completely independent desktops each with its own set of monitors, in multi-seat configuration a single desktop can be shared by multiple users. |
| 6 | |
| 7 | Each seat has its own mouse pointer and keyboard focus. A set of input devices (mice, keyboards) can be assigned to a seat. |
| 8 | |
| 9 | As an example, if you connect an external USB keyboard and mouse to a laptop, you will have two mice and two keyboards. You can have two seats, each with one associated mouse and one keyboard. |
| 10 | |
| 11 | == Adding more keyboards, mice to a Qemu VM == |
| 12 | |
| 13 | Connect an additional USB keyboard, mouse to your computer and then pass them inside Qemu VM. |
| 14 | |
| 15 | In Linux use lsusb to find your USB devices, e.g. |
| 16 | {{{ |
| 17 | [jirka@omelette build]$ lsusb |
| 18 | Bus 001 Device 002: ID 8087:8001 Intel Corp. Integrated Hub |
| 19 | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
| 20 | Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub |
| 21 | Bus 002 Device 004: ID 5986:0366 Acer, Inc Integrated Camera |
| 22 | Bus 002 Device 002: ID 17ef:604d Lenovo Lenovo USB Receiver |
| 23 | Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
| 24 | }}} |
| 25 | |
| 26 | Then run Qemu with additional argument {{{-device usb-host,vendorid=VID,productid=PID}}} for each USB device to pass through inside. Qemu will need additional privileges to do this. |
| 27 | |
| 28 | == Configuring a second seat from the command line == |
| 29 | |
| 30 | {{{ |
| 31 | # disp create-seat Bob |
| 32 | # loc show-cat mouse |
| 33 | mouse: |
| 34 | devices\hw\sys\00:01.0\i8042\ps2b\mouse : devman |
| 35 | devices\hw\sys\00:04.0\usb1-hs\HID0\mouse : devman |
| 36 | # disp assign-dev devices\hw\sys\00:04.0\usb1-hs\HID0\mouse Bob |
| 37 | # loc show-cat keyboard |
| 38 | keyboard: |
| 39 | devices\hw\sys\00:01.0\i8042\ps2a\kbd : devman |
| 40 | XYZ |
| 41 | # disp assign-dev XYZ Bob |
| 42 | ..... |
| 43 | }}} |
| 44 | |
| 45 | ```Tip:``` If you {{{cd}}} to {{{/loc}}}, you can use tab key to complete device names. |
| 46 | |
| 47 | Now you have two independent pointers and keyboard foci. |