BastionGuard/thirdparty/bastionguard-recovery-data/data/plymouth/bastionguard/bastionguard.script
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

120 lines
No EOL
3.1 KiB
Text

// BastionGuard Plymouth Theme
Window.SetBackgroundTopColor(0.10, 0.10, 0.18);
Window.SetBackgroundBottomColor(0.10, 0.10, 0.18);
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
bg_image = Image("bastionguard-wallpapers.png");
bg_sprite = Sprite(bg_image);
bg_sprite.SetZ(-100);
bg_w = bg_image.GetWidth();
bg_h = bg_image.GetHeight();
if (bg_w > 0 && bg_h > 0) {
scale_x = screen_width / bg_w;
scale_y = screen_height / bg_h;
scale = scale_x;
if (scale_y > scale_x)
scale = scale_y;
bg_sprite.SetScale(scale, scale);
bg_sprite.SetX((screen_width - bg_w * scale) / 2);
bg_sprite.SetY((screen_height - bg_h * scale) / 2);
}
logo_image = Image("bastionguard-backup.png");
logo_sprite = Sprite(logo_image);
logo_sprite.SetZ(10);
logo_w = logo_image.GetWidth();
logo_h = logo_image.GetHeight();
logo_sprite.SetX((screen_width - logo_w) / 2);
logo_sprite.SetY((screen_height / 2) - 140);
title_text = "Starting BastionGuard Recovery";
title_color = 0xffffffff;
title_font = "Sans 18";
title = Image.Text(title_text, title_color, title_font);
title_sprite = Sprite(title);
title_sprite.SetZ(20);
title_sprite.SetX((screen_width - title.GetWidth()) / 2);
title_sprite.SetY((screen_height / 2) + 20);
message_color = 0xffffffff;
message_font = "Sans 12";
message = Image.Text("", message_color, message_font);
message_sprite = Sprite(message);
message_sprite.SetZ(20);
message_sprite.SetX((screen_width - 300) / 2);
message_sprite.SetY((screen_height / 2) + 55);
progress_box_image = Image("progress_box.png");
progress_bar_image = Image("progress_bar.png");
progress_box_sprite = Sprite(progress_box_image);
progress_bar_sprite = Sprite(progress_bar_image);
progress_box_sprite.SetZ(15);
progress_bar_sprite.SetZ(16);
box_w = progress_box_image.GetWidth();
box_h = progress_box_image.GetHeight();
progress_x = (screen_width - box_w) / 2;
progress_y = (screen_height / 2) + 85;
progress_box_sprite.SetX(progress_x);
progress_box_sprite.SetY(progress_y);
progress_bar_sprite.SetX(progress_x);
progress_bar_sprite.SetY(progress_y);
progress = 0;
fun refresh_progress() {
bar_w = progress_bar_image.GetWidth();
if (bar_w < 1)
bar_w = 1;
progress_bar_sprite.SetScale(progress, 1.0);
}
fun set_message(text) {
message = Image.Text(text, message_color, message_font);
message_sprite.SetImage(message);
message_sprite.SetX((screen_width - message.GetWidth()) / 2);
}
fun on_boot_progress_callback(duration, percent) {
progress = percent;
refresh_progress();
}
fun on_message_callback(text) {
set_message(text);
}
fun on_root_mounted_callback() {
set_message("Loading BastionGuard Recovery environment...");
}
fun on_boot_complete_callback() {
set_message("BastionGuard Recovery Ready");
progress = 1.0;
refresh_progress();
}
Plymouth.SetBootProgressFunction(on_boot_progress_callback);
Plymouth.SetMessageFunction(on_message_callback);
Plymouth.SetRootMountedFunction(on_root_mounted_callback);
Plymouth.SetBootCompleteFunction(on_boot_complete_callback);
set_message("Starting services...");
refresh_progress();