Plymouth interaction with external code

Сергей shnatsel at gmail.com
Sun Jan 9 08:48:27 PST 2011


Hello everyone!

I've found an challenging mockup a while ago: a boot splash that changes
depending on the time of day. You can see the original mockup at
http://www.omgubuntu.co.uk/2010/10/mock-up-intelligent-ambient-boot-splash/The
concept seemed interesting, so I decided to work on a proof-of-concept
implementation. There were two approaches to this task: writing a custom
plugin and using script plugin with an external script which passes all the
needed info via --update call. I chose the latter because writing a custom
plugin is too inflexible and looks like reinventing the wheel; an external
shell script is plugin- and them-independent and rather flexible. I've made
some progress and have an implementation of
http://www.pilipe.com.ar/content/plymouth-greeting-message-mockup to show
off the potential of such scripts, you can get the code at
https://launchpad.net/plymouth-greeter.

But my implementation turned out to be inflexible, too. In the beginning I
focused on making the thing work and didn't think that the external script
should be theme-specific - some themes may change with time of year, show
disk usage, etc. but my script wasn't. Arose a need in creating a standard
of defining the script to execute (probably a line in .plymouth file of the
theme - but how exactly to do that?). Moreover, in my implementation the
external script launched not by Plymouth, but by Upstart (or worse -
sysvinit). It makes synchronizing the splash and the script extremely
difficult because of some Upstart features and limitations, I spent 80% of
coding time on Upstart and race condition workarounds and the script is
still not launched on boot in many cases because of lots of tech details
about Upstart and its scripts (at least in its scripts in Ubuntu). I can
workaround that, but the code will become completely ugly and hack-ish.

I think interaction with the rest of the system adds numerous new
possibilities to Plymouth themes. While it can be easily added to custom
plugins (I haven't tried myself, but it should be so), it's unavailable to
users of the popular script plugin. So I propose adding the possibility of
running an external command on showing the splash to script plugin and
developing the standard of defining the command to be run.

Any corrections, thoughts, suggestions?

Respectfully,
--
Sergey "Shnatsel" Davidoff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/plymouth/attachments/20110109/fa21b087/attachment.html>


More information about the plymouth mailing list