Fork us on GitHub Follow us on Facebook Follow us on Twitter

Multiple Seat Support (Multi-Seat)


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.

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.

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
        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
        devices\hw\sys\00:01.0\i8042\ps2a\kbd : devman
# 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.

Last modified 2 weeks ago Last modified on 2023-01-22T11:39:13Z