Blueprint changed by Richard Hansen: Whiteboard changed: - The protocol for interacting with logind in a multiseat environment is - described at [1]. I define "basic multiseat support" to be everything - documented there except steps 1 and 2 of "complete porting". - - Also see "Multiseat on Linux" [2]. - - [1] http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/ - [2] http://www.freedesktop.org/wiki/Software/systemd/multiseat/ - - = Background = - - See: https://wiki.ubuntu.com/Multiseat - - = Related future work = - - The following are not considered to be part of this blueprint. They - should be tackled separately. - - - Steps 1 and 2 of "complete porting" in [1]. Those two steps are - required for automatic multiseat support (dynamically spawning and - terminating greeters as seats come and go). See bug #1190581. - - - A tool to make it easier for users to assign devices to seats via - udev rules. - - Note that systemd's loginctl utility, available in Ubuntu since - 13.04 raring, has an "attach" feature that is intended to make it - easier to assign devices to seats. I have not tested this feature - to see how or even if it works. Getting this utility to work with - Ubuntu, or improving its functionality, is out of scope for this - blueprint. - - - Fixing X so that the logind multiseat wrapper [3] can be replaced - with appropriate command-line arguments. - - [3] http://cgit.freedesktop.org/systemd/systemd/tree/src/login/multi- - seat-x.c?id=v206 - - = Requirements = - - - follow steps 1-4 of "minimal porting" and steps 3-4 of "complete - porting" - - support X, Mir, Wayland compositors, etc. - - = Work Item descriptions = - - == Package systemd-multi-seat-x == - - See bug #1214146. - - == New setting: xdg-seat=<name> == - - The xdg-seat=<name> seat setting tells LightDM the name of the seat. - The name defaults to "seat0". - - This name is used: - - in the XDG_SEAT variable (for PAM) - - in the -seat argument to X (if the seat is an X seat and not Mir - or something else) - - to determine how to handle VTs - - If the name is unset, set to the empty string, or set to seat0, then: - - LightDM switches to an automatically chosen VT - - 'vtXX' is passed to X (if the seat is an X seat) where XX is the - number of the chosen VT - - '-seat seat0' is passed to X (if the seat is an X seat) - - If the name is set to something other than seat0, then: - - LightDM does NOT do any VT switching - - 'vtXX' is NOT passed to X (if the seat is an X seat) - - '-seat <name>' is passed to X (if the seat is an X seat) - - LightDM creates a temporary xorg config file with the following - contents: - - Section "ServerFlags" - Option "DontVTSwitch" "True" - EndSection - Section "InputClass" - Identifier "prevent input events from going to the console" - Option "GrabDevice" "True" - EndSection - - - '-config /path/to/above/config/file -sharevts' is passed to X (if - the seat is an X seat) - - If lightdm.conf defines two or more seats with the same name, an error - message is logged and the second and subsequent seats with that name are - ignored. - - == New setting: use-vt=auto|true|false|<integer> == - - (this is not strictly required, but would be a nice feature in case - anyone needs to control VT associations) - - The use-vt=* seat setting tells LightDM which VT to associate with the - display server (if any). - - - use-vt=true: Switch to an automatically chosen VT, pass vtXX to X, - and do not pass -sharevts to X. - - use-vt=false: Do not switch VTs, do not pass vtXX to X, do pass - -sharevts to X, and generate a X config with "DontVTSwitch" and - "GrabDevice" enabled. - - use-vt=auto (default): If the name of the seat is seat0, this is - the same as use-vt=true. Otherwise (not seat0), this is the same - as use-vt=false. - - use-vt=<integer>: Same as use-vt=true, but use the specified VT. - - == Write test cases == - - == Set can_switch appropriately == - - - call set_seat_can_switch() with the value of the - org.freedesktop.login1.Seat.CanMultiSession dbus property - - bug that needs to be figured out: If can_switch is true on a - seat, then when you log out LightDM won't respawn a greeter on - that seat. + The spec wiki page is more or less complete, but could use the following: + * more user stories + * test plan
-- Basic Multiseat Support https://blueprints.launchpad.net/lightdm/+spec/multiseat -- Mailing list: https://launchpad.net/~ubuntu-multiseat Post to : [email protected] Unsubscribe : https://launchpad.net/~ubuntu-multiseat More help : https://help.launchpad.net/ListHelp

