LightDM for Display Management

Registered by Jason Warner

Last cycle I proposed using LightDM to replace GDM [1]. It was deferred
due to the Unity work, so time to repropose!

The main reasons for switching are:
- Simpler code to maintain (GDM is a huge ~50,000 line C program and we
carry 36 patches. LightDM is nearer 10,000 lines of C).
- More flexible greeter development - greeters are as easy as X
applications to write, which means we can have an Ubuntu specific
greeter that without branching the rest of the code
- Speed improvements - we can run a greeter without running a full GNOME
session
- Display manager can be shared with Kubuntu, Xubuntu, Lubuntu etc but
still allow each distro to have their own greeter.

The current state of LightDM is "80% done" I would say. The core
architecture is all there, and it just needs a few weeks of solid work
to make it shine.

[1]
https://blueprints.launchpad.net/ubuntu/+spec/packageselection-desktop-n-display-manager

Blueprint information

Status:
Complete
Approver:
Martin Pitt
Priority:
Medium
Drafter:
Robert Ancell
Direction:
Approved
Assignee:
Robert Ancell
Definition:
Approved
Series goal:
Accepted for oneiric
Implementation:
Implemented
Milestone target:
milestone icon oneiric-alpha-2
Started by
Martin Pitt
Completed by
Robert Ancell

Related branches

Sprints

Whiteboard

Work items (oneiric-alpha-1):
[robert-ancell] MIR for LightDM: DONE
[robert-ancell] Write Ubuntu wiki page about how to test/debug/fix LightDM: DONE

Work items (oneiric-alpha-2):
[robert-ancell] Switch Oneiric to using LightDM by default: DONE
[mika] Design Unity greeter: DONE

Work items (oneiric-alpha-3):
[robert-ancell] Implement Unity greeter: DONE
[robert-ancell] Implement unit testing for LightDM: DONE

Work items (ubuntu-11.10-beta-1):
[robert-ancell] Implement capability detection: POSTPONED
[didrocks] Use new capability detection for Unity using LightDM: POSTPONED

Work items (ubuntu-11.10):
Check two-factor works well: POSTPONED
[jdstrand] Perform security review: POSTPONED
[themuso] Perform accessibility review: POSTPONED

2011-05-20, amano:
They have a humongous mockup in elementary project. With the black bar on the top it feels much more consistent with Unity/Ambience than the current GDM theme: http://whyareyoureadingthisurl.wordpress.com/2011/04/11/login-screen-mockups/

UDS Discussion:

Statement: We want a new login experience for Ubuntu

- matching theme
- better keyboard navigation

Option 1: Modify GDM
Option 2: Use LightDM

https://launchpad.net/lightdm

LightDM Requirements:

GUI
    User list
    Face images
    Multi-monitor
    Network status
    Clock
    Sound
        ability to change system volume levels prior to login
    Shutdown/restart
    User switcher integration
    Graceful failure
    Touch support
    Greeter/session transitions
    Fast startup
    Session selector
    Capability dependant session
Authentication
    PAM
    Username/password
    Fingerprint
    Keycard / Smartcard
    Facial recognition
    Two-factor
Power Management
    Shutdown/Restart
    Sleep/Hibernate
Internationalization
    Keyboard layout/input method
    Translatable strings
Accessibility
    Font size
    Theme (high contrast)
    Sound events
    Speech
    Onscreen keyboard
    Everything keyboard accessible
    Screen reader (orca)
Configuration
    Multi seat
    User list
    Sound
    Autologin
System administration
    Logging
    Auditing
Extensibility
    Plugin system
    Multiple language support
    Shell scripts?
Remote login
    XDMCP
    RDP?
    Other?
Future
    Wayland

Lubuntu is interested to switch to LightDM, to share work on the maintenance. LXDM (current display manager for Lubuntu) is working. So to replace it, we need at least LightDM to have features already supported by LXDM :
 * Support for multiple configuration files (LXDM uses update-alternative)
 * Building with GTK3
 * GtkBuilder greeter
 * ConsoleKit support
 * Support for encrypted home
 * Support autologin
 * Support plymouth
 * User and keyboard switching at login
 * No GNOME components started by default
 * Read / write ~/.dmrc
 * Reading all PATH (usr/games, usr/local ...)
 * Support Xauthority (with possible option to put it in /home or in /var)
 * Support in Ubiquity / user-setup (Autologin support at install time) See bug #546445
 * Handle password with space
 * Read ~/.xprofile
 * Work with libpam-ck-connector installed
 * Fast and low memory usage

Plan of action:
- use lightdm in oneiric
- change the default early in the cycle so it gets testing

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.