Hi,
This proof-of-concept patch adds a simple progress bar to plymouth's
"Spinfinity" plugin.
The progress bar uses an estimate of boot time - defaulting to 45
seconds if unknown - and runs from 0% to 100% over that interval.
Furthermore, the patch measures how long it takes to boot and writes
that value to /etc/boottime at plugin shutdown. (This is kind of a nice
side-effect - we get actual *measured* boot speed data, rather than just
"feels snappier!")
There's an associated script, update-boottime, that crams /etc/boottime
into your initrd, so this splash plugin can use *that* to more closely
approximate the time required to boot.
This is similar to the OS X "WaitingForLoginWindow" process. It's an
effective placebo - startup *seems* faster with the progress bar, even
though it's exactly the same.
You can enable it by adding 'timebar:1' to the boot commandline. This
will make it run in linear-time mode - the progress bar moves linearly
from 0% to 100%.
Using 'timebar:2' modifies the percentage calculation to use an
exponential function - this makes the bar run faster at first, then slow
as it approaches 100%. This makes startup seem even faster. Seriously!
The bar (and its implementation) are kind of ugly right now, but again -
this is just a proof-of-concept.
I think people get impatient with spinners after ~15s or so, so I think
it's probably worth the effort to add something like this.
Don't underestimate the *perceived* difference in startup speed - or at
least the feeling that it's actually Doing Something during those ~40-50
seconds it takes system(s) to start. Try it yourself. See if you think
it makes a difference.
If people ask, I'll generate some binary packages of the 'timebar'
plugin for people to test out, but I wanted to give you all a look at
the code (and a chance to discuss the concept) first.
-w