New Design
GDM was rewritten during the GNOME 2.21 release cycle.
Motivations
Better fast-user-switching support (bug #343539 etc)
- Enable a smarter people chooser in the greeter
Better ConsoleKit integration (seat awareness, coordination etc)
- Facilitate creating a new blingier greeter
- Dynamically configure displays
- Allow session agents to run in the greeter session (gnome-power-manager etc)
- Have the ability to only run a single greeter per seat (currently gdmflexiserver will start any number of them)
Use PolicyKit for reboot etc authorization/handling
- Use a better configuration mechanism that is more compatible with a hypothetical systemwide D-Bus based GConf
- Provide a D-Bus API so that agents like fast-user-switch applet can be written more easily and operate more efficiently
Fix all the horrible non-reentrant POSIX signal handling and various race conditions in the current code (bug #336549 etc)
- Make it easier to do "hot desking" type things
- Use a more modern design to simplify maintence and enhance flexibility (use of GObject etc)
- Use a more robust, secure, and flexible IPC
Design Details
Diagram that shows the authentication workflow for GdmSimpleSlave
Diagram that shows the authentication workflow for GdmFactorySlave
Design Workspaces
Status
See the ../ToDo list for work to be done.