smooth transition between plymouth and gdm

Ray Strode halfline at gmail.com
Sat Jun 6 17:42:22 PDT 2009


Hi,

There have been a few people asking how the smooth fade works in
Fedora between plymouth and GDM, so I thought I'd send a mail to
explain.

The way it works is instead of running "plymouth quit" we run
"plymouth quit --retain-splash" which forces plymouth to keep the
splash contents on screen and keep the vt in KD_GRAPHICS mode after
plymouth exits.  When in this mode the user won't be able to switch to
other vts.

We then have a patch fo GDM which forces X to start on the active vt.
That patch is here:

http://cvs.fedoraproject.org/viewvc/rpms/gdm/devel/gdm-2.26.0-force-active-vt.patch?revision=1.1&view=markup

That patch also makes X start with "-nr" instead of "-br" so that it
won't clear the screen to black on start up.

Once X is started, GDM needs to set the root pixmap id to the screen
contents. We do that with another patch:

http://bugzilla.gnome.org/attachment.cgi?id=128912&action=diff

Then gnome-settings-daemon will automatically do the cross-fade for us
when GDM starts it (because of some patches I did a few months ago,
see gnome bug 552857) .

The first patch is a bit of a hack, so I haven't been eager to
upstream it.  The second patch doesn't make sense unless the X server
is started with -nr which right now can only happen if the first patch
is applied.  That will change when we land Halton Huo's display
configuration patches (see
http://mail.gnome.org/archives/gdm-list/2009-June/msg00004.html).

One thing I don't like about the patches are that they leave the
system in a bad state during the transition.   After plymouth exits,
the user can't change VTs until GDM starts.  If GDM doesn't start, the
user has to reboot their system...  This isn't very robust.  I'd like
to redo things such that there is a handshake between plymouth and
gdm, where plymouth only exits after GDM starts and says "Okay you can
go now".

One other note, ConsoleKit gets confused when GDM is started on an
already active VT.  I wrote a patch that fixes that here:

http://cvs.fedoraproject.org/viewvc/rpms/ConsoleKit/devel/ConsoleKit-0.3.0-get-vt-from-display-instead-of-controlling-tty.patch?view=markup

There's no reason that patch couldn't go upstream right now.
ConsoleKit is getting a mailing list soon, so I intend to discuss it
on list then.

--Ray


More information about the plymouth mailing list