Document and restructure the interface between the GDM greeter and server components so new greeters can be more easily developed.

Release Note

(Applicable for developers only) This release contains a simplified interface for developing greeters.


The current GDM has no theming support, by reducing the difficulty in writing greeters differently styled greeters can be written. Different greeters can be written for different hardware, e.g. netbooks may need a compact layout and be able to do advanced 3D effects where general purpose systems may not be able to guarantee 3D support.


  • The API will be via D-Bus to the GDM server (it currently is)
  • The API will be accessible by greeters and other applications (e.g. user switchers)
  • The API will be secured so only appropriate applications can use it (Policy Kit)
  • The API will provide a model of local system users and provide the following information for each user:
    • Login name
    • Real name
    • Avatar image
    • Login status
  • The API will allow the following actions:
    • Switch to a given user
  • The API will be support any type of desktop environment so that greeters can be developed for other desktop environments, e.g. KDE.
  • Common elements between greeters will be provided to reduce code in simple greeters. The following elements will be provided:
    • User list
    • Accessibility dialog
    • Password change dialog


  • Documentation of existing interface (in Wiki)
  • Existing moved into GDM server where appropriate
  • Greeter library produced containing components shared between greeters
  • GUI library produced containing common greeter UI elements (GTK+)
  • Production of bindings to greeter interface (Python)

The implementation should not increase the startup time.


The existing greeter will be modified to meet any interface changes.

Test/Demo Plan

There should be no behaviour/visible changes for users. A demonstration would be to show a new greeter that was quickly developed.


DesktopTeam/Specs/Lucid/GDMCustomGreeter (last edited 2009-11-24 03:40:00 by robert-ancell)