screen_width = Window.GetWidth(); screen_height = Window.GetHeight(); if (Plymouth.GetMode() != "shutdown") { theme_image = Image("splash.png"); } else { theme_image = Image("splash_halt.png"); } image_width = theme_image.GetWidth(); image_height = theme_image.GetHeight(); scale_x = image_width / screen_width; scale_y = image_height / screen_height; if (scale_x > 1 || scale_y > 1) { if (scale_x > scale_y) { resized_image = theme_image.Scale (screen_width, image_height / scale_x); image_x = 0; image_y = (screen_height - ((image_height * screen_width) / image_width)) / 2; } else { resized_image = theme_image.Scale (image_width / scale_y, screen_height); image_x = (screen_width - ((image_width * screen_height) / image_height)) / 2; image_y = 0; } } else { resized_image = theme_image.Scale (image_width, image_height); image_x = (screen_width - image_width) / 2; image_y = (screen_height - image_height) / 2; } sprite = Sprite (resized_image); sprite.SetPosition (image_x, image_y, -100); message_sprite = Sprite(); message_sprite.SetPosition(screen_width * 0.1, screen_height * 0.9, 10000); fun message_callback (text) { my_image = Image.Text(text, 1, 1, 1); message_sprite.SetImage(my_image); sprite.SetImage (resized_image); } Plymouth.SetUpdateStatusFunction(message_callback);