= Multiple Seat Support (Multi-Seat) = == Introduction == HelenOS [wiki:GUI graphical user interface] supports multiple seats. 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. Each seat has its own mouse pointer and keyboard focus. A set of input devices (mice, keyboards) can be assigned to a seat. 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. [[Image(multiseat.png)]] == Adding more keyboards, mice to a Qemu VM == Connect an additional USB keyboard, mouse to your computer and then pass them inside Qemu VM. In Linux use lsusb to find your USB devices, e.g. {{{ [jirka@omelette build]$ lsusb Bus 001 Device 002: ID 8087:8001 Intel Corp. Integrated Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 004: ID 5986:0366 Acer, Inc Integrated Camera Bus 002 Device 002: ID 17ef:604d Lenovo Lenovo USB Receiver Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub }}} 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. == Configuring a second seat from the command line == {{{ # disp create-seat Bob # loc show-cat mouse mouse: devices\hw\sys\00:01.0\i8042\ps2b\mouse : devman devices\hw\sys\00:04.0\usb1-hs\HID0\mouse : devman # disp assign-dev devices\hw\sys\00:04.0\usb1-hs\HID0\mouse Bob # loc show-cat keyboard keyboard: devices\hw\sys\00:01.0\i8042\ps2a\kbd : devman XYZ # disp assign-dev XYZ Bob ..... }}} ```Tip:``` If you {{{cd}}} to {{{/loc}}}, you can use tab key to complete device names. Now you have two independent pointers and keyboard foci.