Features/Multiseat

= Multiseat Support =

Summary
Make it simple to configure a system for multiseat operation, where two or more users each have their own keyboard, monitor, and mouse, and can work independently of each other.

Owner

 * Name: Ctyler chris at tylers dot info

Current status

 * Targeted release:  Fedora ?
 * Last updated: 2009-01-28
 * Percentage of completion: 10%

Detailed Description
Linux is inherently multiuser, but PC hardware is usually designed with a single local user in mind. However, it's realitively straightforward to add additional video cards, monitors, and mice to provide access for multiple simultaneous users. F8 provided fairly good multiseat support (with significant manual configuration), but recent changes in in device support and X have removed functionality that is needed for multiseat operation. The removed functionality needs to be added back in and be thoroughly tested on a range of hardware.

Multiseat systems are useful in schools, home offices, libraries, Internet cafes, and other settings, and provide savings in power consumption, capital cost, and administration effort when compared to operating multiple PCs.

Benefit to Fedora
Multiseat is a good solution for several use-cases, and will clearly showcase Fedora's flexibility. However, it is also expected to yield improvements in the robustness of device support for single-user configurations.

Note: Fedora currently has multiseat users (release <= F8) who are now using EOL releases. Adding good multiseat support will enable those users to upgrade to a current Fedora release and make it easy for additional users to configure multiseat systems.

Scope
Requires packaging or testing and/or enhancements in:
 * GDM
 * GDM 2.22 dropped support for configuring multiple local servers via configuration files. To start multiple seats, we will need to: (a) have ConsoleKit tell GDM what seats are available, (b) add the config-file functionality back in, or (c) configure multiseat using one of the other display managers.
 * ConsoleKit
 * If approach (a) is selected above, ConsoleKit will need to be configurable for multiple seats. (I can't see an easy way for it to automatically determine keyboard-pointer-video groupings).
 * Decide how to handle multiple concurrent local users for for sound, USB, and removable-media drives.
 * PulseAudio
 * Adjustments to default configuration to better support multiple local users?
 * udev
 * X is now configured with all input devices, even those hotplugged after the X server starts. For multiseat operation, this is not desirable.
 * udev rules could be used to assign devices to specific displays (:0, :1, ...)
 * Kernel
 * Get VGA arbitration/multi-card POSTing into the kernel for multicard multiseat (this was removed from X in the F9 timeframe)
 * X
 * Fix/restore --noswitchvt/-sharevts functionality
 * Adjust to work with udev display assignment
 * Test that evdev can be configured to use specific devices only (vs. all input devices)
 * Determine which video card and driver combinations work in a multi-seat configuration (e.g., Nouveau is reported not to work with multiple cards at this time)
 * Xephyr
 * Confirm operation with evdev input devices
 * Adjust to work with udev display assignment

How To Test

 * 1) Arrange access to systems with a variety of multiseat video configurations.
 * 2) Test multiseat operation on those platforms.
 * 3) Work with Fedora QA to ensure that we have sufficient coverage.

User Experience

 * 1) Users of existing multiseat systems (currently stuck at F8) will be able to update their systems to a current Fedora release.
 * 2) Users configuring a multiseat system for the first time should find it fairly straightforward.
 * 3) Multiseat systems should operate with the same reliability as single-seat systems.

Dependencies

 * Changes noted in "Scope" section


 * Creation of configuration tool

Contingency Plan

 * Do not support Multiseat in Fedora -- no change from F9/F10

Documentation

 * MDM
 * E-mail discussion of the future of multiseat in GDM, looking at gdmdynamic and MDM
 * ConsoleKit
 * X.org bugs related to -novtswitch and -sharevts

Release Notes
Outline:
 * Description of multiseat capabilities
 * Use Cases
 * Home office
 * Kiosk cluster
 * Internet cafe
 * Library
 * System requirements
 * Video, keyboard, mouse
 * Video card combinations known to work
 * Video card combinations known to fail
 * General system resources: memory, disk, CPU guidelines for multi-user configuration
 * Configuring Multiseat
 * Installing and configuring MDM
 * Pointer to Multiseat-related fp.o/wiki pages

Comments and Discussion

 * See Talk:Features/Multiseat