Richard I found the real bug, it was a script issue after all. The *1.2 was our undoing as an opacity of 1.1 is treated as opacity 0.1, not opacity 1.0 as we assumed! That's why the geeko is disappearing and fading in again towards the end of the boot; he's hitting opacity 1.0 and may keep going up to 1.2 = 0.2. (You may not see this because the progress never actually reaches 1.0; I generally reach about 0.75 before the animation dies, which is fine. But sometimes I reach 0.85, and 0.85*1.2 > 1 so the geeko disappears and starts fading in again.) So we just need to make sure to set the opacity to 1 if it's greater than 1, or 0 if it's less than 0 - problem solved. For shutdown the geeko starts at 1.2 = 0.2 opacity and runs down from there; if he hits 1.0 = 0.0 then he'll reappear at full opacity and then continue running down. So the shutdown animation is completely broken; and there's another problem: shutdown progress is weird; it doesn't ever reach anywhere near 1. For me it goes from 0.0 up to 0.18, so if we remove the *1.2 from the opacity then we're going to get 1/5 the fade-out range we would expect (from 100% down to 80% - hardly noticeable). For you, your shutdown progress much not reach even that high, since if it did then you WOULD have noticed the reappearing geeko. Since I don't understand how shutdown progress works at all, I'm not really sure the best fix. If shutdown progress doesn't end at the same place for all computers, which seems likely as if it did then surely that value would be 1.0, then we're going to have to accept both partially-faded and early-faded geekos. Here's what I currently have; looking perfect for my computer, but who knows about yours or Neighbor Bob's. fun progress_callback (duration, progress) { if (Plymouth.GetMode() == "suspend" || Plymouth.GetMode() == "resume") { <snip> } else { # Be super careful with opacity. All values are modulo 1, # so if we go above 1 we will begin fading in again. if (Plymouth.GetMode() == "boot") { opacity = progress * 1.1; if (opacity > 1) { opacity = 1; } geeko.sprite.SetOpacity (opacity); } else { opacity = 1 - progress*6; if (opacity < 0) { opacity = 0; } geeko.sprite.SetOpacity (opacity); } } } Note the parenthesis are necessarily gone from the shutdown opacity; previously that was (1-progress)*1.2 which started us at 20% opacity. (I also toned down the fade-in at boot from *1.2 to *1.1 to make it a bit more gradual; that should look better for everyone.) P.S. to print your boot "progress" you can make a sprite from text: http://www.freedesktop.org/wiki/Software/Plymouth/Scripts -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org