System Compositor

Registered by Jason Warner on 2012-04-25

A change I'd like to make for 12.10 is to use a compositor to control video from boot to shutdown.

This gives us the following benefits:
- We can have smooth transitions from the splash screen to the greeter to the session and back again
- We don't use VT switching anymore which has been shown to be problematic
- We use one consistent monitor layout for all stages of the boot
- We can use the greeter as the lock screen (couldn't get it to work this cycle for the above reasons)
- We can ensure that you can never accidentally switch to a locked session
- We can show the greeter while the session loads

The technology used will probably be Wayland, and in some ways this change is to implement the Wayland Tech Preview that was proposed for Precise [1].

Note that not all video drivers will support this, and we will continue to support the current system for those that do not support it (primarily the nvidia driver).

[1] https://blueprints.launchpad.net/ubuntu/+spec/desktop-q-wayland-tech-preview

Whiteboard

This blueprint is now obsolete due to the Mir work.

seb128, 2012-08-06: descoping the compositor work from quantal, good progresses have been made but it doesn't seem realistic to enable it by default, we will revisit that next cycle

WARNING WARNING WARNING
This is experimental stuff, you could break your system. Be prepared for breakages.

1. Install the PPA:
$ sudo apt-add-repository ppa:ubuntu-desktop/system-compositor
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install weston

1b. Remove the vesa and fbdev drivers:
$ sudo apt-get remove xserver-xorg-video-vesa xserver-xorg-video-fbdev

2. Stop LightDM (from a text console):
$ sudo stop lightdm

3. Set LightDM to run with the weston compositor by editing /etc/lightdm/lightdm.conf and setting:
[SeatDefaults]
type=weston

4. Start LightDM
$ sudo start lightdm

Once you've finished testing, repeat steps 2-4 but disable the seat type to return to the standard stack.

You should see the greeter as normal and be able to log into your session as normal.

KNOWN PROBLEMS:
- Issues with vesa and fbdev drivers (step 1b, LP: #1022423)
- Wayland can pick the wrong video card if you have two. Running 'sudo rmmod nouveau' will fix this if you have an intel/nvidia mix. (LP: #1022424)
- The login screen appears 'washed out' (LP: #1023354)
- When switching users the second user has ConsoleKit issues as CK gets confused that both sessions are on the same VT (LP: #)
- The screen resolution is incorrect leading to unused space on the right (LP: #1023356)
- The Unity panel can't be accessed with the mouse when set to autohide (LP: #)
- Color profiles aren't applied since the monitor name has changed

(?)

Work Items

Work items:
[raof] (and apw) Talk at a kernel team level about making VT switching possible, but harder: POSTPONED
[robert-ancell] Find canaries for testing this: DONE
[robert-ancell] Update LightDM: INPROGRESS
[robert-ancell] Use greeter as lock screen: POSTPONED
[raof] Add Xserver signal hook to fake VT switch for input drivers: TODO
[raof] Patch xwayland to use regular input DDXen: TODO
[raof] Evaluate whether system compositor should be a weston plugin or a weston fork: DONE
[robert-ancell] (and raof) Talk with foundations about how to minimise the changes between the different boot systems: DONE
[robert-ancell] (and raof) Talk with QA about how to set up testing: POSTPONED
[raof] Write a wayland plymouth backend: POSTPONED
[raof] Add xwayland support to nouveau: DONE
[raof] Document display manager / system compositor interactions: POSTPONED

Dependency tree

* Blueprints in grey have been implemented.