diff --git a/themes/catppuccin/plymouth/bullet.png b/themes/catppuccin/plymouth/bullet.png new file mode 100644 index 0000000..e5c5a15 Binary files /dev/null and b/themes/catppuccin/plymouth/bullet.png differ diff --git a/themes/catppuccin/plymouth/entry.png b/themes/catppuccin/plymouth/entry.png new file mode 100644 index 0000000..df2cd6b Binary files /dev/null and b/themes/catppuccin/plymouth/entry.png differ diff --git a/themes/catppuccin/plymouth/lock.png b/themes/catppuccin/plymouth/lock.png new file mode 100644 index 0000000..82bd157 Binary files /dev/null and b/themes/catppuccin/plymouth/lock.png differ diff --git a/themes/catppuccin/plymouth/logo.png b/themes/catppuccin/plymouth/logo.png new file mode 100644 index 0000000..c5bec78 Binary files /dev/null and b/themes/catppuccin/plymouth/logo.png differ diff --git a/themes/catppuccin/plymouth/omarchy.plymouth b/themes/catppuccin/plymouth/omarchy.plymouth new file mode 100644 index 0000000..1c8b401 --- /dev/null +++ b/themes/catppuccin/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x24273a + + diff --git a/themes/catppuccin/plymouth/omarchy.script b/themes/catppuccin/plymouth/omarchy.script new file mode 100644 index 0000000..f3b9f0c --- /dev/null +++ b/themes/catppuccin/plymouth/omarchy.script @@ -0,0 +1,236 @@ +# Omarchy Plymouth Theme Script +Window.SetBackgroundTopColor(0.141, 0.153, 0.227); +Window.SetBackgroundBottomColor(0.141, 0.153, 0.227); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/catppuccin/plymouth/progress_bar.png b/themes/catppuccin/plymouth/progress_bar.png new file mode 100644 index 0000000..b0715e5 Binary files /dev/null and b/themes/catppuccin/plymouth/progress_bar.png differ diff --git a/themes/catppuccin/plymouth/progress_box.png b/themes/catppuccin/plymouth/progress_box.png new file mode 100644 index 0000000..6015b08 Binary files /dev/null and b/themes/catppuccin/plymouth/progress_box.png differ diff --git a/themes/catppuccin/plymouth/throbber-01.png b/themes/catppuccin/plymouth/throbber-01.png new file mode 100644 index 0000000..da87e30 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-01.png differ diff --git a/themes/catppuccin/plymouth/throbber-02.png b/themes/catppuccin/plymouth/throbber-02.png new file mode 100644 index 0000000..13e07fa Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-02.png differ diff --git a/themes/catppuccin/plymouth/throbber-03.png b/themes/catppuccin/plymouth/throbber-03.png new file mode 100644 index 0000000..4944f1a Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-03.png differ diff --git a/themes/catppuccin/plymouth/throbber-04.png b/themes/catppuccin/plymouth/throbber-04.png new file mode 100644 index 0000000..7d3a10d Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-04.png differ diff --git a/themes/catppuccin/plymouth/throbber-05.png b/themes/catppuccin/plymouth/throbber-05.png new file mode 100644 index 0000000..f6f87b0 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-05.png differ diff --git a/themes/catppuccin/plymouth/throbber-06.png b/themes/catppuccin/plymouth/throbber-06.png new file mode 100644 index 0000000..b56d25b Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-06.png differ diff --git a/themes/catppuccin/plymouth/throbber-07.png b/themes/catppuccin/plymouth/throbber-07.png new file mode 100644 index 0000000..009cd78 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-07.png differ diff --git a/themes/catppuccin/plymouth/throbber-08.png b/themes/catppuccin/plymouth/throbber-08.png new file mode 100644 index 0000000..41015f6 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-08.png differ diff --git a/themes/catppuccin/plymouth/throbber-09.png b/themes/catppuccin/plymouth/throbber-09.png new file mode 100644 index 0000000..e9b0fe6 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-09.png differ diff --git a/themes/catppuccin/plymouth/throbber-10.png b/themes/catppuccin/plymouth/throbber-10.png new file mode 100644 index 0000000..ad1fa72 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-10.png differ diff --git a/themes/catppuccin/plymouth/throbber-11.png b/themes/catppuccin/plymouth/throbber-11.png new file mode 100644 index 0000000..7a6b13d Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-11.png differ diff --git a/themes/catppuccin/plymouth/throbber-12.png b/themes/catppuccin/plymouth/throbber-12.png new file mode 100644 index 0000000..e175fe0 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-12.png differ diff --git a/themes/catppuccin/plymouth/throbber-13.png b/themes/catppuccin/plymouth/throbber-13.png new file mode 100644 index 0000000..33887f7 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-13.png differ diff --git a/themes/catppuccin/plymouth/throbber-14.png b/themes/catppuccin/plymouth/throbber-14.png new file mode 100644 index 0000000..516830d Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-14.png differ diff --git a/themes/catppuccin/plymouth/throbber-15.png b/themes/catppuccin/plymouth/throbber-15.png new file mode 100644 index 0000000..9258c7a Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-15.png differ diff --git a/themes/catppuccin/plymouth/throbber-16.png b/themes/catppuccin/plymouth/throbber-16.png new file mode 100644 index 0000000..3ddeebe Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-16.png differ diff --git a/themes/catppuccin/plymouth/throbber-17.png b/themes/catppuccin/plymouth/throbber-17.png new file mode 100644 index 0000000..a959e56 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-17.png differ diff --git a/themes/catppuccin/plymouth/throbber-18.png b/themes/catppuccin/plymouth/throbber-18.png new file mode 100644 index 0000000..e128bcc Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-18.png differ diff --git a/themes/catppuccin/plymouth/throbber-19.png b/themes/catppuccin/plymouth/throbber-19.png new file mode 100644 index 0000000..e32b20a Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-19.png differ diff --git a/themes/catppuccin/plymouth/throbber-20.png b/themes/catppuccin/plymouth/throbber-20.png new file mode 100644 index 0000000..68a1988 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-20.png differ diff --git a/themes/catppuccin/plymouth/throbber-21.png b/themes/catppuccin/plymouth/throbber-21.png new file mode 100644 index 0000000..e6d2700 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-21.png differ diff --git a/themes/catppuccin/plymouth/throbber-22.png b/themes/catppuccin/plymouth/throbber-22.png new file mode 100644 index 0000000..284bc04 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-22.png differ diff --git a/themes/catppuccin/plymouth/throbber-23.png b/themes/catppuccin/plymouth/throbber-23.png new file mode 100644 index 0000000..a05003c Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-23.png differ diff --git a/themes/catppuccin/plymouth/throbber-24.png b/themes/catppuccin/plymouth/throbber-24.png new file mode 100644 index 0000000..54e1b5c Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-24.png differ diff --git a/themes/catppuccin/plymouth/throbber-25.png b/themes/catppuccin/plymouth/throbber-25.png new file mode 100644 index 0000000..d6858d5 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-25.png differ diff --git a/themes/catppuccin/plymouth/throbber-26.png b/themes/catppuccin/plymouth/throbber-26.png new file mode 100644 index 0000000..2c69dec Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-26.png differ diff --git a/themes/catppuccin/plymouth/throbber-27.png b/themes/catppuccin/plymouth/throbber-27.png new file mode 100644 index 0000000..595667b Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-27.png differ diff --git a/themes/catppuccin/plymouth/throbber-28.png b/themes/catppuccin/plymouth/throbber-28.png new file mode 100644 index 0000000..50487d6 Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-28.png differ diff --git a/themes/catppuccin/plymouth/throbber-29.png b/themes/catppuccin/plymouth/throbber-29.png new file mode 100644 index 0000000..a4427ba Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-29.png differ diff --git a/themes/catppuccin/plymouth/throbber-30.png b/themes/catppuccin/plymouth/throbber-30.png new file mode 100644 index 0000000..b2e9ebf Binary files /dev/null and b/themes/catppuccin/plymouth/throbber-30.png differ diff --git a/themes/everforest/plymouth/bullet.png b/themes/everforest/plymouth/bullet.png new file mode 100644 index 0000000..a0e9966 Binary files /dev/null and b/themes/everforest/plymouth/bullet.png differ diff --git a/themes/everforest/plymouth/entry.png b/themes/everforest/plymouth/entry.png new file mode 100644 index 0000000..4ee9d75 Binary files /dev/null and b/themes/everforest/plymouth/entry.png differ diff --git a/themes/everforest/plymouth/lock.png b/themes/everforest/plymouth/lock.png new file mode 100644 index 0000000..7a37973 Binary files /dev/null and b/themes/everforest/plymouth/lock.png differ diff --git a/themes/everforest/plymouth/logo.png b/themes/everforest/plymouth/logo.png new file mode 100644 index 0000000..4425be4 Binary files /dev/null and b/themes/everforest/plymouth/logo.png differ diff --git a/themes/everforest/plymouth/omarchy.plymouth b/themes/everforest/plymouth/omarchy.plymouth new file mode 100644 index 0000000..bb3abed --- /dev/null +++ b/themes/everforest/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x2d353b + + diff --git a/themes/everforest/plymouth/omarchy.script b/themes/everforest/plymouth/omarchy.script new file mode 100644 index 0000000..f0f6f50 --- /dev/null +++ b/themes/everforest/plymouth/omarchy.script @@ -0,0 +1,237 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.176, 0.208, 0.231); +Window.SetBackgroundBottomColor(0.176, 0.208, 0.231); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/everforest/plymouth/progress_bar.png b/themes/everforest/plymouth/progress_bar.png new file mode 100644 index 0000000..e142b2e Binary files /dev/null and b/themes/everforest/plymouth/progress_bar.png differ diff --git a/themes/everforest/plymouth/progress_box.png b/themes/everforest/plymouth/progress_box.png new file mode 100644 index 0000000..ac8d117 Binary files /dev/null and b/themes/everforest/plymouth/progress_box.png differ diff --git a/themes/everforest/plymouth/throbber-01.png b/themes/everforest/plymouth/throbber-01.png new file mode 100644 index 0000000..7ae4eba Binary files /dev/null and b/themes/everforest/plymouth/throbber-01.png differ diff --git a/themes/everforest/plymouth/throbber-02.png b/themes/everforest/plymouth/throbber-02.png new file mode 100644 index 0000000..2b15d88 Binary files /dev/null and b/themes/everforest/plymouth/throbber-02.png differ diff --git a/themes/everforest/plymouth/throbber-03.png b/themes/everforest/plymouth/throbber-03.png new file mode 100644 index 0000000..bbebb94 Binary files /dev/null and b/themes/everforest/plymouth/throbber-03.png differ diff --git a/themes/everforest/plymouth/throbber-04.png b/themes/everforest/plymouth/throbber-04.png new file mode 100644 index 0000000..5e60b0b Binary files /dev/null and b/themes/everforest/plymouth/throbber-04.png differ diff --git a/themes/everforest/plymouth/throbber-05.png b/themes/everforest/plymouth/throbber-05.png new file mode 100644 index 0000000..9e2ca62 Binary files /dev/null and b/themes/everforest/plymouth/throbber-05.png differ diff --git a/themes/everforest/plymouth/throbber-06.png b/themes/everforest/plymouth/throbber-06.png new file mode 100644 index 0000000..e99d7fa Binary files /dev/null and b/themes/everforest/plymouth/throbber-06.png differ diff --git a/themes/everforest/plymouth/throbber-07.png b/themes/everforest/plymouth/throbber-07.png new file mode 100644 index 0000000..b51eb4b Binary files /dev/null and b/themes/everforest/plymouth/throbber-07.png differ diff --git a/themes/everforest/plymouth/throbber-08.png b/themes/everforest/plymouth/throbber-08.png new file mode 100644 index 0000000..2458a6e Binary files /dev/null and b/themes/everforest/plymouth/throbber-08.png differ diff --git a/themes/everforest/plymouth/throbber-09.png b/themes/everforest/plymouth/throbber-09.png new file mode 100644 index 0000000..39d7941 Binary files /dev/null and b/themes/everforest/plymouth/throbber-09.png differ diff --git a/themes/everforest/plymouth/throbber-10.png b/themes/everforest/plymouth/throbber-10.png new file mode 100644 index 0000000..f8d5947 Binary files /dev/null and b/themes/everforest/plymouth/throbber-10.png differ diff --git a/themes/everforest/plymouth/throbber-11.png b/themes/everforest/plymouth/throbber-11.png new file mode 100644 index 0000000..1c9ebcc Binary files /dev/null and b/themes/everforest/plymouth/throbber-11.png differ diff --git a/themes/everforest/plymouth/throbber-12.png b/themes/everforest/plymouth/throbber-12.png new file mode 100644 index 0000000..a16e177 Binary files /dev/null and b/themes/everforest/plymouth/throbber-12.png differ diff --git a/themes/everforest/plymouth/throbber-13.png b/themes/everforest/plymouth/throbber-13.png new file mode 100644 index 0000000..868d56e Binary files /dev/null and b/themes/everforest/plymouth/throbber-13.png differ diff --git a/themes/everforest/plymouth/throbber-14.png b/themes/everforest/plymouth/throbber-14.png new file mode 100644 index 0000000..113e30c Binary files /dev/null and b/themes/everforest/plymouth/throbber-14.png differ diff --git a/themes/everforest/plymouth/throbber-15.png b/themes/everforest/plymouth/throbber-15.png new file mode 100644 index 0000000..4280701 Binary files /dev/null and b/themes/everforest/plymouth/throbber-15.png differ diff --git a/themes/everforest/plymouth/throbber-16.png b/themes/everforest/plymouth/throbber-16.png new file mode 100644 index 0000000..e74ad0b Binary files /dev/null and b/themes/everforest/plymouth/throbber-16.png differ diff --git a/themes/everforest/plymouth/throbber-17.png b/themes/everforest/plymouth/throbber-17.png new file mode 100644 index 0000000..2d1cf09 Binary files /dev/null and b/themes/everforest/plymouth/throbber-17.png differ diff --git a/themes/everforest/plymouth/throbber-18.png b/themes/everforest/plymouth/throbber-18.png new file mode 100644 index 0000000..20c2be9 Binary files /dev/null and b/themes/everforest/plymouth/throbber-18.png differ diff --git a/themes/everforest/plymouth/throbber-19.png b/themes/everforest/plymouth/throbber-19.png new file mode 100644 index 0000000..08d152a Binary files /dev/null and b/themes/everforest/plymouth/throbber-19.png differ diff --git a/themes/everforest/plymouth/throbber-20.png b/themes/everforest/plymouth/throbber-20.png new file mode 100644 index 0000000..79f090b Binary files /dev/null and b/themes/everforest/plymouth/throbber-20.png differ diff --git a/themes/everforest/plymouth/throbber-21.png b/themes/everforest/plymouth/throbber-21.png new file mode 100644 index 0000000..11b785c Binary files /dev/null and b/themes/everforest/plymouth/throbber-21.png differ diff --git a/themes/everforest/plymouth/throbber-22.png b/themes/everforest/plymouth/throbber-22.png new file mode 100644 index 0000000..5e1f7e7 Binary files /dev/null and b/themes/everforest/plymouth/throbber-22.png differ diff --git a/themes/everforest/plymouth/throbber-23.png b/themes/everforest/plymouth/throbber-23.png new file mode 100644 index 0000000..f1d05e4 Binary files /dev/null and b/themes/everforest/plymouth/throbber-23.png differ diff --git a/themes/everforest/plymouth/throbber-24.png b/themes/everforest/plymouth/throbber-24.png new file mode 100644 index 0000000..9efa0d5 Binary files /dev/null and b/themes/everforest/plymouth/throbber-24.png differ diff --git a/themes/everforest/plymouth/throbber-25.png b/themes/everforest/plymouth/throbber-25.png new file mode 100644 index 0000000..04e9d06 Binary files /dev/null and b/themes/everforest/plymouth/throbber-25.png differ diff --git a/themes/everforest/plymouth/throbber-26.png b/themes/everforest/plymouth/throbber-26.png new file mode 100644 index 0000000..e26b2a6 Binary files /dev/null and b/themes/everforest/plymouth/throbber-26.png differ diff --git a/themes/everforest/plymouth/throbber-27.png b/themes/everforest/plymouth/throbber-27.png new file mode 100644 index 0000000..af869ea Binary files /dev/null and b/themes/everforest/plymouth/throbber-27.png differ diff --git a/themes/everforest/plymouth/throbber-28.png b/themes/everforest/plymouth/throbber-28.png new file mode 100644 index 0000000..c6cb1f6 Binary files /dev/null and b/themes/everforest/plymouth/throbber-28.png differ diff --git a/themes/everforest/plymouth/throbber-29.png b/themes/everforest/plymouth/throbber-29.png new file mode 100644 index 0000000..bbe9b3d Binary files /dev/null and b/themes/everforest/plymouth/throbber-29.png differ diff --git a/themes/everforest/plymouth/throbber-30.png b/themes/everforest/plymouth/throbber-30.png new file mode 100644 index 0000000..3d6b32a Binary files /dev/null and b/themes/everforest/plymouth/throbber-30.png differ diff --git a/themes/gruvbox/plymouth/bullet.png b/themes/gruvbox/plymouth/bullet.png new file mode 100644 index 0000000..8dc004f Binary files /dev/null and b/themes/gruvbox/plymouth/bullet.png differ diff --git a/themes/gruvbox/plymouth/entry.png b/themes/gruvbox/plymouth/entry.png new file mode 100644 index 0000000..48d9331 Binary files /dev/null and b/themes/gruvbox/plymouth/entry.png differ diff --git a/themes/gruvbox/plymouth/lock.png b/themes/gruvbox/plymouth/lock.png new file mode 100644 index 0000000..c62bdec Binary files /dev/null and b/themes/gruvbox/plymouth/lock.png differ diff --git a/themes/gruvbox/plymouth/logo.png b/themes/gruvbox/plymouth/logo.png new file mode 100644 index 0000000..ed60b89 Binary files /dev/null and b/themes/gruvbox/plymouth/logo.png differ diff --git a/themes/gruvbox/plymouth/omarchy.plymouth b/themes/gruvbox/plymouth/omarchy.plymouth new file mode 100644 index 0000000..df907b6 --- /dev/null +++ b/themes/gruvbox/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x282828 + + diff --git a/themes/gruvbox/plymouth/omarchy.script b/themes/gruvbox/plymouth/omarchy.script new file mode 100644 index 0000000..aa6fb9c --- /dev/null +++ b/themes/gruvbox/plymouth/omarchy.script @@ -0,0 +1,237 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.157, 0.157, 0.157); +Window.SetBackgroundBottomColor(0.157, 0.157, 0.157); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/gruvbox/plymouth/progress_bar.png b/themes/gruvbox/plymouth/progress_bar.png new file mode 100644 index 0000000..43f3d20 Binary files /dev/null and b/themes/gruvbox/plymouth/progress_bar.png differ diff --git a/themes/gruvbox/plymouth/progress_box.png b/themes/gruvbox/plymouth/progress_box.png new file mode 100644 index 0000000..8e31446 Binary files /dev/null and b/themes/gruvbox/plymouth/progress_box.png differ diff --git a/themes/gruvbox/plymouth/throbber-01.png b/themes/gruvbox/plymouth/throbber-01.png new file mode 100644 index 0000000..c1bc755 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-01.png differ diff --git a/themes/gruvbox/plymouth/throbber-02.png b/themes/gruvbox/plymouth/throbber-02.png new file mode 100644 index 0000000..aaf55e6 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-02.png differ diff --git a/themes/gruvbox/plymouth/throbber-03.png b/themes/gruvbox/plymouth/throbber-03.png new file mode 100644 index 0000000..83733f1 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-03.png differ diff --git a/themes/gruvbox/plymouth/throbber-04.png b/themes/gruvbox/plymouth/throbber-04.png new file mode 100644 index 0000000..a0ec030 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-04.png differ diff --git a/themes/gruvbox/plymouth/throbber-05.png b/themes/gruvbox/plymouth/throbber-05.png new file mode 100644 index 0000000..6bae626 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-05.png differ diff --git a/themes/gruvbox/plymouth/throbber-06.png b/themes/gruvbox/plymouth/throbber-06.png new file mode 100644 index 0000000..3b6df47 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-06.png differ diff --git a/themes/gruvbox/plymouth/throbber-07.png b/themes/gruvbox/plymouth/throbber-07.png new file mode 100644 index 0000000..4096f3d Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-07.png differ diff --git a/themes/gruvbox/plymouth/throbber-08.png b/themes/gruvbox/plymouth/throbber-08.png new file mode 100644 index 0000000..e116845 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-08.png differ diff --git a/themes/gruvbox/plymouth/throbber-09.png b/themes/gruvbox/plymouth/throbber-09.png new file mode 100644 index 0000000..4a57250 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-09.png differ diff --git a/themes/gruvbox/plymouth/throbber-10.png b/themes/gruvbox/plymouth/throbber-10.png new file mode 100644 index 0000000..b3ad0cf Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-10.png differ diff --git a/themes/gruvbox/plymouth/throbber-11.png b/themes/gruvbox/plymouth/throbber-11.png new file mode 100644 index 0000000..2066b21 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-11.png differ diff --git a/themes/gruvbox/plymouth/throbber-12.png b/themes/gruvbox/plymouth/throbber-12.png new file mode 100644 index 0000000..345df54 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-12.png differ diff --git a/themes/gruvbox/plymouth/throbber-13.png b/themes/gruvbox/plymouth/throbber-13.png new file mode 100644 index 0000000..d015750 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-13.png differ diff --git a/themes/gruvbox/plymouth/throbber-14.png b/themes/gruvbox/plymouth/throbber-14.png new file mode 100644 index 0000000..970ea4c Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-14.png differ diff --git a/themes/gruvbox/plymouth/throbber-15.png b/themes/gruvbox/plymouth/throbber-15.png new file mode 100644 index 0000000..cde2044 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-15.png differ diff --git a/themes/gruvbox/plymouth/throbber-16.png b/themes/gruvbox/plymouth/throbber-16.png new file mode 100644 index 0000000..9165657 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-16.png differ diff --git a/themes/gruvbox/plymouth/throbber-17.png b/themes/gruvbox/plymouth/throbber-17.png new file mode 100644 index 0000000..9c617e3 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-17.png differ diff --git a/themes/gruvbox/plymouth/throbber-18.png b/themes/gruvbox/plymouth/throbber-18.png new file mode 100644 index 0000000..8647628 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-18.png differ diff --git a/themes/gruvbox/plymouth/throbber-19.png b/themes/gruvbox/plymouth/throbber-19.png new file mode 100644 index 0000000..b2f1dd5 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-19.png differ diff --git a/themes/gruvbox/plymouth/throbber-20.png b/themes/gruvbox/plymouth/throbber-20.png new file mode 100644 index 0000000..ec8f6f2 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-20.png differ diff --git a/themes/gruvbox/plymouth/throbber-21.png b/themes/gruvbox/plymouth/throbber-21.png new file mode 100644 index 0000000..bc76744 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-21.png differ diff --git a/themes/gruvbox/plymouth/throbber-22.png b/themes/gruvbox/plymouth/throbber-22.png new file mode 100644 index 0000000..2d21be3 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-22.png differ diff --git a/themes/gruvbox/plymouth/throbber-23.png b/themes/gruvbox/plymouth/throbber-23.png new file mode 100644 index 0000000..ef91301 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-23.png differ diff --git a/themes/gruvbox/plymouth/throbber-24.png b/themes/gruvbox/plymouth/throbber-24.png new file mode 100644 index 0000000..8a7966f Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-24.png differ diff --git a/themes/gruvbox/plymouth/throbber-25.png b/themes/gruvbox/plymouth/throbber-25.png new file mode 100644 index 0000000..d4373fa Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-25.png differ diff --git a/themes/gruvbox/plymouth/throbber-26.png b/themes/gruvbox/plymouth/throbber-26.png new file mode 100644 index 0000000..7d13099 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-26.png differ diff --git a/themes/gruvbox/plymouth/throbber-27.png b/themes/gruvbox/plymouth/throbber-27.png new file mode 100644 index 0000000..2507500 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-27.png differ diff --git a/themes/gruvbox/plymouth/throbber-28.png b/themes/gruvbox/plymouth/throbber-28.png new file mode 100644 index 0000000..fe9fe65 Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-28.png differ diff --git a/themes/gruvbox/plymouth/throbber-29.png b/themes/gruvbox/plymouth/throbber-29.png new file mode 100644 index 0000000..b9ceadc Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-29.png differ diff --git a/themes/gruvbox/plymouth/throbber-30.png b/themes/gruvbox/plymouth/throbber-30.png new file mode 100644 index 0000000..c29e5ac Binary files /dev/null and b/themes/gruvbox/plymouth/throbber-30.png differ diff --git a/themes/kanagawa/plymouth/bullet.png b/themes/kanagawa/plymouth/bullet.png new file mode 100644 index 0000000..29f49d0 Binary files /dev/null and b/themes/kanagawa/plymouth/bullet.png differ diff --git a/themes/kanagawa/plymouth/entry.png b/themes/kanagawa/plymouth/entry.png new file mode 100644 index 0000000..44c8539 Binary files /dev/null and b/themes/kanagawa/plymouth/entry.png differ diff --git a/themes/kanagawa/plymouth/lock.png b/themes/kanagawa/plymouth/lock.png new file mode 100644 index 0000000..b682fd5 Binary files /dev/null and b/themes/kanagawa/plymouth/lock.png differ diff --git a/themes/kanagawa/plymouth/logo.png b/themes/kanagawa/plymouth/logo.png new file mode 100644 index 0000000..09cd61b Binary files /dev/null and b/themes/kanagawa/plymouth/logo.png differ diff --git a/themes/kanagawa/plymouth/omarchy.plymouth b/themes/kanagawa/plymouth/omarchy.plymouth new file mode 100644 index 0000000..1b94e8a --- /dev/null +++ b/themes/kanagawa/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x1f1f28 + + diff --git a/themes/kanagawa/plymouth/omarchy.script b/themes/kanagawa/plymouth/omarchy.script new file mode 100644 index 0000000..d66d761 --- /dev/null +++ b/themes/kanagawa/plymouth/omarchy.script @@ -0,0 +1,237 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.122, 0.122, 0.157); +Window.SetBackgroundBottomColor(0.122, 0.122, 0.157); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/kanagawa/plymouth/progress_bar.png b/themes/kanagawa/plymouth/progress_bar.png new file mode 100644 index 0000000..22a3508 Binary files /dev/null and b/themes/kanagawa/plymouth/progress_bar.png differ diff --git a/themes/kanagawa/plymouth/progress_box.png b/themes/kanagawa/plymouth/progress_box.png new file mode 100644 index 0000000..2e2d49b Binary files /dev/null and b/themes/kanagawa/plymouth/progress_box.png differ diff --git a/themes/kanagawa/plymouth/throbber-01.png b/themes/kanagawa/plymouth/throbber-01.png new file mode 100644 index 0000000..4799c0d Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-01.png differ diff --git a/themes/kanagawa/plymouth/throbber-02.png b/themes/kanagawa/plymouth/throbber-02.png new file mode 100644 index 0000000..4e6ba0a Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-02.png differ diff --git a/themes/kanagawa/plymouth/throbber-03.png b/themes/kanagawa/plymouth/throbber-03.png new file mode 100644 index 0000000..7bf0de0 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-03.png differ diff --git a/themes/kanagawa/plymouth/throbber-04.png b/themes/kanagawa/plymouth/throbber-04.png new file mode 100644 index 0000000..6c9feed Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-04.png differ diff --git a/themes/kanagawa/plymouth/throbber-05.png b/themes/kanagawa/plymouth/throbber-05.png new file mode 100644 index 0000000..278c6b4 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-05.png differ diff --git a/themes/kanagawa/plymouth/throbber-06.png b/themes/kanagawa/plymouth/throbber-06.png new file mode 100644 index 0000000..2ec7e94 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-06.png differ diff --git a/themes/kanagawa/plymouth/throbber-07.png b/themes/kanagawa/plymouth/throbber-07.png new file mode 100644 index 0000000..cb5f946 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-07.png differ diff --git a/themes/kanagawa/plymouth/throbber-08.png b/themes/kanagawa/plymouth/throbber-08.png new file mode 100644 index 0000000..f4c9cf3 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-08.png differ diff --git a/themes/kanagawa/plymouth/throbber-09.png b/themes/kanagawa/plymouth/throbber-09.png new file mode 100644 index 0000000..579396d Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-09.png differ diff --git a/themes/kanagawa/plymouth/throbber-10.png b/themes/kanagawa/plymouth/throbber-10.png new file mode 100644 index 0000000..04b3d10 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-10.png differ diff --git a/themes/kanagawa/plymouth/throbber-11.png b/themes/kanagawa/plymouth/throbber-11.png new file mode 100644 index 0000000..397e52d Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-11.png differ diff --git a/themes/kanagawa/plymouth/throbber-12.png b/themes/kanagawa/plymouth/throbber-12.png new file mode 100644 index 0000000..8980d82 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-12.png differ diff --git a/themes/kanagawa/plymouth/throbber-13.png b/themes/kanagawa/plymouth/throbber-13.png new file mode 100644 index 0000000..b6942cd Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-13.png differ diff --git a/themes/kanagawa/plymouth/throbber-14.png b/themes/kanagawa/plymouth/throbber-14.png new file mode 100644 index 0000000..2ff020c Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-14.png differ diff --git a/themes/kanagawa/plymouth/throbber-15.png b/themes/kanagawa/plymouth/throbber-15.png new file mode 100644 index 0000000..74ecb6b Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-15.png differ diff --git a/themes/kanagawa/plymouth/throbber-16.png b/themes/kanagawa/plymouth/throbber-16.png new file mode 100644 index 0000000..15ed619 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-16.png differ diff --git a/themes/kanagawa/plymouth/throbber-17.png b/themes/kanagawa/plymouth/throbber-17.png new file mode 100644 index 0000000..025210d Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-17.png differ diff --git a/themes/kanagawa/plymouth/throbber-18.png b/themes/kanagawa/plymouth/throbber-18.png new file mode 100644 index 0000000..663e964 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-18.png differ diff --git a/themes/kanagawa/plymouth/throbber-19.png b/themes/kanagawa/plymouth/throbber-19.png new file mode 100644 index 0000000..d313bfc Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-19.png differ diff --git a/themes/kanagawa/plymouth/throbber-20.png b/themes/kanagawa/plymouth/throbber-20.png new file mode 100644 index 0000000..8c9c6ae Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-20.png differ diff --git a/themes/kanagawa/plymouth/throbber-21.png b/themes/kanagawa/plymouth/throbber-21.png new file mode 100644 index 0000000..211aa09 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-21.png differ diff --git a/themes/kanagawa/plymouth/throbber-22.png b/themes/kanagawa/plymouth/throbber-22.png new file mode 100644 index 0000000..04576cf Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-22.png differ diff --git a/themes/kanagawa/plymouth/throbber-23.png b/themes/kanagawa/plymouth/throbber-23.png new file mode 100644 index 0000000..7736cb9 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-23.png differ diff --git a/themes/kanagawa/plymouth/throbber-24.png b/themes/kanagawa/plymouth/throbber-24.png new file mode 100644 index 0000000..46ac5f5 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-24.png differ diff --git a/themes/kanagawa/plymouth/throbber-25.png b/themes/kanagawa/plymouth/throbber-25.png new file mode 100644 index 0000000..990459d Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-25.png differ diff --git a/themes/kanagawa/plymouth/throbber-26.png b/themes/kanagawa/plymouth/throbber-26.png new file mode 100644 index 0000000..ec53fe5 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-26.png differ diff --git a/themes/kanagawa/plymouth/throbber-27.png b/themes/kanagawa/plymouth/throbber-27.png new file mode 100644 index 0000000..f050150 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-27.png differ diff --git a/themes/kanagawa/plymouth/throbber-28.png b/themes/kanagawa/plymouth/throbber-28.png new file mode 100644 index 0000000..7854d20 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-28.png differ diff --git a/themes/kanagawa/plymouth/throbber-29.png b/themes/kanagawa/plymouth/throbber-29.png new file mode 100644 index 0000000..e35305a Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-29.png differ diff --git a/themes/kanagawa/plymouth/throbber-30.png b/themes/kanagawa/plymouth/throbber-30.png new file mode 100644 index 0000000..4612bd0 Binary files /dev/null and b/themes/kanagawa/plymouth/throbber-30.png differ diff --git a/themes/nord/plymouth/bullet.png b/themes/nord/plymouth/bullet.png new file mode 100644 index 0000000..d5b457c Binary files /dev/null and b/themes/nord/plymouth/bullet.png differ diff --git a/themes/nord/plymouth/entry.png b/themes/nord/plymouth/entry.png new file mode 100644 index 0000000..d091fcb Binary files /dev/null and b/themes/nord/plymouth/entry.png differ diff --git a/themes/nord/plymouth/lock.png b/themes/nord/plymouth/lock.png new file mode 100644 index 0000000..d4df3c6 Binary files /dev/null and b/themes/nord/plymouth/lock.png differ diff --git a/themes/nord/plymouth/logo.png b/themes/nord/plymouth/logo.png new file mode 100644 index 0000000..29b6c3c Binary files /dev/null and b/themes/nord/plymouth/logo.png differ diff --git a/themes/nord/plymouth/omarchy.plymouth b/themes/nord/plymouth/omarchy.plymouth new file mode 100644 index 0000000..54ee5d5 --- /dev/null +++ b/themes/nord/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x2e3440 + + diff --git a/themes/nord/plymouth/omarchy.script b/themes/nord/plymouth/omarchy.script new file mode 100644 index 0000000..e1c1030 --- /dev/null +++ b/themes/nord/plymouth/omarchy.script @@ -0,0 +1,237 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.180, 0.204, 0.251); +Window.SetBackgroundBottomColor(0.180, 0.204, 0.251); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/nord/plymouth/progress_bar.png b/themes/nord/plymouth/progress_bar.png new file mode 100644 index 0000000..81e7764 Binary files /dev/null and b/themes/nord/plymouth/progress_bar.png differ diff --git a/themes/nord/plymouth/progress_box.png b/themes/nord/plymouth/progress_box.png new file mode 100644 index 0000000..da894d8 Binary files /dev/null and b/themes/nord/plymouth/progress_box.png differ diff --git a/themes/nord/plymouth/throbber-01.png b/themes/nord/plymouth/throbber-01.png new file mode 100644 index 0000000..a6a867c Binary files /dev/null and b/themes/nord/plymouth/throbber-01.png differ diff --git a/themes/nord/plymouth/throbber-02.png b/themes/nord/plymouth/throbber-02.png new file mode 100644 index 0000000..a18b5aa Binary files /dev/null and b/themes/nord/plymouth/throbber-02.png differ diff --git a/themes/nord/plymouth/throbber-03.png b/themes/nord/plymouth/throbber-03.png new file mode 100644 index 0000000..0c06697 Binary files /dev/null and b/themes/nord/plymouth/throbber-03.png differ diff --git a/themes/nord/plymouth/throbber-04.png b/themes/nord/plymouth/throbber-04.png new file mode 100644 index 0000000..8e72cb2 Binary files /dev/null and b/themes/nord/plymouth/throbber-04.png differ diff --git a/themes/nord/plymouth/throbber-05.png b/themes/nord/plymouth/throbber-05.png new file mode 100644 index 0000000..487f218 Binary files /dev/null and b/themes/nord/plymouth/throbber-05.png differ diff --git a/themes/nord/plymouth/throbber-06.png b/themes/nord/plymouth/throbber-06.png new file mode 100644 index 0000000..87bf973 Binary files /dev/null and b/themes/nord/plymouth/throbber-06.png differ diff --git a/themes/nord/plymouth/throbber-07.png b/themes/nord/plymouth/throbber-07.png new file mode 100644 index 0000000..9ed61bb Binary files /dev/null and b/themes/nord/plymouth/throbber-07.png differ diff --git a/themes/nord/plymouth/throbber-08.png b/themes/nord/plymouth/throbber-08.png new file mode 100644 index 0000000..75fe31c Binary files /dev/null and b/themes/nord/plymouth/throbber-08.png differ diff --git a/themes/nord/plymouth/throbber-09.png b/themes/nord/plymouth/throbber-09.png new file mode 100644 index 0000000..7cf2aa1 Binary files /dev/null and b/themes/nord/plymouth/throbber-09.png differ diff --git a/themes/nord/plymouth/throbber-10.png b/themes/nord/plymouth/throbber-10.png new file mode 100644 index 0000000..1c6bac9 Binary files /dev/null and b/themes/nord/plymouth/throbber-10.png differ diff --git a/themes/nord/plymouth/throbber-11.png b/themes/nord/plymouth/throbber-11.png new file mode 100644 index 0000000..7d64503 Binary files /dev/null and b/themes/nord/plymouth/throbber-11.png differ diff --git a/themes/nord/plymouth/throbber-12.png b/themes/nord/plymouth/throbber-12.png new file mode 100644 index 0000000..bf670a0 Binary files /dev/null and b/themes/nord/plymouth/throbber-12.png differ diff --git a/themes/nord/plymouth/throbber-13.png b/themes/nord/plymouth/throbber-13.png new file mode 100644 index 0000000..5a28e23 Binary files /dev/null and b/themes/nord/plymouth/throbber-13.png differ diff --git a/themes/nord/plymouth/throbber-14.png b/themes/nord/plymouth/throbber-14.png new file mode 100644 index 0000000..fe83ea8 Binary files /dev/null and b/themes/nord/plymouth/throbber-14.png differ diff --git a/themes/nord/plymouth/throbber-15.png b/themes/nord/plymouth/throbber-15.png new file mode 100644 index 0000000..32bb9f8 Binary files /dev/null and b/themes/nord/plymouth/throbber-15.png differ diff --git a/themes/nord/plymouth/throbber-16.png b/themes/nord/plymouth/throbber-16.png new file mode 100644 index 0000000..3d91648 Binary files /dev/null and b/themes/nord/plymouth/throbber-16.png differ diff --git a/themes/nord/plymouth/throbber-17.png b/themes/nord/plymouth/throbber-17.png new file mode 100644 index 0000000..76d709e Binary files /dev/null and b/themes/nord/plymouth/throbber-17.png differ diff --git a/themes/nord/plymouth/throbber-18.png b/themes/nord/plymouth/throbber-18.png new file mode 100644 index 0000000..86f8346 Binary files /dev/null and b/themes/nord/plymouth/throbber-18.png differ diff --git a/themes/nord/plymouth/throbber-19.png b/themes/nord/plymouth/throbber-19.png new file mode 100644 index 0000000..4937f9b Binary files /dev/null and b/themes/nord/plymouth/throbber-19.png differ diff --git a/themes/nord/plymouth/throbber-20.png b/themes/nord/plymouth/throbber-20.png new file mode 100644 index 0000000..7949dec Binary files /dev/null and b/themes/nord/plymouth/throbber-20.png differ diff --git a/themes/nord/plymouth/throbber-21.png b/themes/nord/plymouth/throbber-21.png new file mode 100644 index 0000000..c6f56c7 Binary files /dev/null and b/themes/nord/plymouth/throbber-21.png differ diff --git a/themes/nord/plymouth/throbber-22.png b/themes/nord/plymouth/throbber-22.png new file mode 100644 index 0000000..196e885 Binary files /dev/null and b/themes/nord/plymouth/throbber-22.png differ diff --git a/themes/nord/plymouth/throbber-23.png b/themes/nord/plymouth/throbber-23.png new file mode 100644 index 0000000..2465d4e Binary files /dev/null and b/themes/nord/plymouth/throbber-23.png differ diff --git a/themes/nord/plymouth/throbber-24.png b/themes/nord/plymouth/throbber-24.png new file mode 100644 index 0000000..40bdf98 Binary files /dev/null and b/themes/nord/plymouth/throbber-24.png differ diff --git a/themes/nord/plymouth/throbber-25.png b/themes/nord/plymouth/throbber-25.png new file mode 100644 index 0000000..037453a Binary files /dev/null and b/themes/nord/plymouth/throbber-25.png differ diff --git a/themes/nord/plymouth/throbber-26.png b/themes/nord/plymouth/throbber-26.png new file mode 100644 index 0000000..8757e00 Binary files /dev/null and b/themes/nord/plymouth/throbber-26.png differ diff --git a/themes/nord/plymouth/throbber-27.png b/themes/nord/plymouth/throbber-27.png new file mode 100644 index 0000000..150a9e2 Binary files /dev/null and b/themes/nord/plymouth/throbber-27.png differ diff --git a/themes/nord/plymouth/throbber-28.png b/themes/nord/plymouth/throbber-28.png new file mode 100644 index 0000000..88ced45 Binary files /dev/null and b/themes/nord/plymouth/throbber-28.png differ diff --git a/themes/nord/plymouth/throbber-29.png b/themes/nord/plymouth/throbber-29.png new file mode 100644 index 0000000..82017de Binary files /dev/null and b/themes/nord/plymouth/throbber-29.png differ diff --git a/themes/nord/plymouth/throbber-30.png b/themes/nord/plymouth/throbber-30.png new file mode 100644 index 0000000..fd2fc25 Binary files /dev/null and b/themes/nord/plymouth/throbber-30.png differ diff --git a/themes/tokyo-night/plymouth/bullet.png b/themes/tokyo-night/plymouth/bullet.png new file mode 100644 index 0000000..0b3ffa7 Binary files /dev/null and b/themes/tokyo-night/plymouth/bullet.png differ diff --git a/themes/tokyo-night/plymouth/entry.png b/themes/tokyo-night/plymouth/entry.png new file mode 100644 index 0000000..5c78917 Binary files /dev/null and b/themes/tokyo-night/plymouth/entry.png differ diff --git a/themes/tokyo-night/plymouth/lock.png b/themes/tokyo-night/plymouth/lock.png new file mode 100644 index 0000000..06bb109 Binary files /dev/null and b/themes/tokyo-night/plymouth/lock.png differ diff --git a/themes/tokyo-night/plymouth/logo.png b/themes/tokyo-night/plymouth/logo.png new file mode 100644 index 0000000..e4b2526 Binary files /dev/null and b/themes/tokyo-night/plymouth/logo.png differ diff --git a/themes/tokyo-night/plymouth/omarchy.plymouth b/themes/tokyo-night/plymouth/omarchy.plymouth new file mode 100644 index 0000000..b824473 --- /dev/null +++ b/themes/tokyo-night/plymouth/omarchy.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Omarchy +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x1a1b26 + + diff --git a/themes/tokyo-night/plymouth/omarchy.script b/themes/tokyo-night/plymouth/omarchy.script new file mode 100644 index 0000000..8f4998f --- /dev/null +++ b/themes/tokyo-night/plymouth/omarchy.script @@ -0,0 +1,237 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.101, 0.105, 0.149); +Window.SetBackgroundBottomColor(0.101, 0.105, 0.149); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +fun refresh_callback () + { + # Always animate spinner - it will be invisible when not needed + if (global.spinner_sprite) + { + global.spinner_frame++; + frame_index = Math.Int(global.spinner_frame / 3) % global.spinner_frame_count; + global.spinner_sprite.SetImage(global.spinner_images[frame_index]); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.lock; + local.entry; + + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + entry.sprite = Sprite(entry.image); + entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2; + entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; + entry.z = 10001; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + lock.sprite = Sprite(lock.image); + lock.x = entry.x - lock.image.GetWidth() - 10; + lock.y = logo.sprite.GetY() + logo.image.GetHeight() + 40 + entry.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = 10001; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + global.dialog.lock.sprite.SetOpacity (opacity); + global.dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + spinner_show(); # Show spinner when no password dialog + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + + # Always hide spinner when showing password dialog + spinner_hide(); + + # Setup dialog if it doesn't exist + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + + # Clear all bullets first (user might hit backspace) + for (index = 0; global.dialog.bullet[index]; index++) + { + global.dialog.bullet[index].sprite.SetOpacity(0); + } + + # Create and show bullets for current password + for (index = 0; index < bullets; index++) + { + if (!global.dialog.bullet[index]) + { + global.dialog.bullet[index].sprite = Sprite(global.dialog.bullet_image); + global.dialog.bullet[index].x = global.dialog.entry.x + 10 + index * (global.dialog.bullet_image.GetWidth() + 5); + global.dialog.bullet[index].y = global.dialog.entry.y + global.dialog.entry.image.GetHeight() / 2 - global.dialog.bullet_image.GetHeight() / 2; + global.dialog.bullet[index].z = global.dialog.entry.z + 1; + global.dialog.bullet[index].sprite.SetPosition(global.dialog.bullet[index].x, global.dialog.bullet[index].y, global.dialog.bullet[index].z); + } + global.dialog.bullet[index].sprite.SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Spinner -------------------------------- + +global.spinner_sprite = NULL; +global.spinner_frame = 0; +global.spinner_frame_count = 30; +global.spinner_visible = false; +global.spinner_images = []; + +fun spinner_setup() + { + if (!global.spinner_sprite) + { + # Load all throbber frames + for (i = 1; i <= global.spinner_frame_count; i++) + { + if (i < 10) + filename = "throbber-000" + i + ".png"; + else + filename = "throbber-00" + i + ".png"; + global.spinner_images[i-1] = Image(filename); + } + + # Create spinner sprite + global.spinner_sprite = Sprite(global.spinner_images[0]); + global.spinner_x = Window.GetX() + Window.GetWidth() / 2 - global.spinner_images[0].GetWidth() / 2; + global.spinner_y = Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2 + logo.image.GetHeight() + 40; + global.spinner_sprite.SetPosition(global.spinner_x, global.spinner_y, 10002); + global.spinner_sprite.SetOpacity(0); + } + } + +fun spinner_show() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(1); + global.spinner_visible = true; + } + } + +fun spinner_hide() + { + if (global.spinner_sprite) + { + global.spinner_sprite.SetOpacity(0); + global.spinner_visible = false; + } + } + +# Initialize spinner +spinner_setup(); +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +global.progress_visible = false; +fun progress_callback (duration, progress) + { + if (progress > 0.01 && Plymouth.GetMode() != "shutdown" && Plymouth.GetMode() != "reboot" && Plymouth.GetMode() != "suspend") + { + if (!global.progress_visible) + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + global.progress_visible = true; + } + + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth() * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + else + { + # Hide progress bar when progress is 0 + if (global.progress_visible) + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + global.progress_visible = false; + } + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/themes/tokyo-night/plymouth/progress_bar.png b/themes/tokyo-night/plymouth/progress_bar.png new file mode 100644 index 0000000..dbb9fd7 Binary files /dev/null and b/themes/tokyo-night/plymouth/progress_bar.png differ diff --git a/themes/tokyo-night/plymouth/progress_box.png b/themes/tokyo-night/plymouth/progress_box.png new file mode 100644 index 0000000..6a263f2 Binary files /dev/null and b/themes/tokyo-night/plymouth/progress_box.png differ diff --git a/themes/tokyo-night/plymouth/throbber-01.png b/themes/tokyo-night/plymouth/throbber-01.png new file mode 100644 index 0000000..85367eb Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-01.png differ diff --git a/themes/tokyo-night/plymouth/throbber-02.png b/themes/tokyo-night/plymouth/throbber-02.png new file mode 100644 index 0000000..6eae3e6 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-02.png differ diff --git a/themes/tokyo-night/plymouth/throbber-03.png b/themes/tokyo-night/plymouth/throbber-03.png new file mode 100644 index 0000000..2e28ef7 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-03.png differ diff --git a/themes/tokyo-night/plymouth/throbber-04.png b/themes/tokyo-night/plymouth/throbber-04.png new file mode 100644 index 0000000..cd32248 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-04.png differ diff --git a/themes/tokyo-night/plymouth/throbber-05.png b/themes/tokyo-night/plymouth/throbber-05.png new file mode 100644 index 0000000..f4bfb21 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-05.png differ diff --git a/themes/tokyo-night/plymouth/throbber-06.png b/themes/tokyo-night/plymouth/throbber-06.png new file mode 100644 index 0000000..5b1a5cd Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-06.png differ diff --git a/themes/tokyo-night/plymouth/throbber-07.png b/themes/tokyo-night/plymouth/throbber-07.png new file mode 100644 index 0000000..2c93f47 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-07.png differ diff --git a/themes/tokyo-night/plymouth/throbber-08.png b/themes/tokyo-night/plymouth/throbber-08.png new file mode 100644 index 0000000..10cc347 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-08.png differ diff --git a/themes/tokyo-night/plymouth/throbber-09.png b/themes/tokyo-night/plymouth/throbber-09.png new file mode 100644 index 0000000..c511351 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-09.png differ diff --git a/themes/tokyo-night/plymouth/throbber-10.png b/themes/tokyo-night/plymouth/throbber-10.png new file mode 100644 index 0000000..ccd1b32 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-10.png differ diff --git a/themes/tokyo-night/plymouth/throbber-11.png b/themes/tokyo-night/plymouth/throbber-11.png new file mode 100644 index 0000000..dc82348 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-11.png differ diff --git a/themes/tokyo-night/plymouth/throbber-12.png b/themes/tokyo-night/plymouth/throbber-12.png new file mode 100644 index 0000000..76565d5 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-12.png differ diff --git a/themes/tokyo-night/plymouth/throbber-13.png b/themes/tokyo-night/plymouth/throbber-13.png new file mode 100644 index 0000000..da5a995 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-13.png differ diff --git a/themes/tokyo-night/plymouth/throbber-14.png b/themes/tokyo-night/plymouth/throbber-14.png new file mode 100644 index 0000000..b3097d7 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-14.png differ diff --git a/themes/tokyo-night/plymouth/throbber-15.png b/themes/tokyo-night/plymouth/throbber-15.png new file mode 100644 index 0000000..a3a5e04 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-15.png differ diff --git a/themes/tokyo-night/plymouth/throbber-16.png b/themes/tokyo-night/plymouth/throbber-16.png new file mode 100644 index 0000000..32a5fd5 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-16.png differ diff --git a/themes/tokyo-night/plymouth/throbber-17.png b/themes/tokyo-night/plymouth/throbber-17.png new file mode 100644 index 0000000..e726b5c Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-17.png differ diff --git a/themes/tokyo-night/plymouth/throbber-18.png b/themes/tokyo-night/plymouth/throbber-18.png new file mode 100644 index 0000000..19d0242 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-18.png differ diff --git a/themes/tokyo-night/plymouth/throbber-19.png b/themes/tokyo-night/plymouth/throbber-19.png new file mode 100644 index 0000000..86ef4f7 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-19.png differ diff --git a/themes/tokyo-night/plymouth/throbber-20.png b/themes/tokyo-night/plymouth/throbber-20.png new file mode 100644 index 0000000..d00033f Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-20.png differ diff --git a/themes/tokyo-night/plymouth/throbber-21.png b/themes/tokyo-night/plymouth/throbber-21.png new file mode 100644 index 0000000..7d8b06b Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-21.png differ diff --git a/themes/tokyo-night/plymouth/throbber-22.png b/themes/tokyo-night/plymouth/throbber-22.png new file mode 100644 index 0000000..a3a1944 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-22.png differ diff --git a/themes/tokyo-night/plymouth/throbber-23.png b/themes/tokyo-night/plymouth/throbber-23.png new file mode 100644 index 0000000..8355e65 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-23.png differ diff --git a/themes/tokyo-night/plymouth/throbber-24.png b/themes/tokyo-night/plymouth/throbber-24.png new file mode 100644 index 0000000..a26816b Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-24.png differ diff --git a/themes/tokyo-night/plymouth/throbber-25.png b/themes/tokyo-night/plymouth/throbber-25.png new file mode 100644 index 0000000..5251b08 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-25.png differ diff --git a/themes/tokyo-night/plymouth/throbber-26.png b/themes/tokyo-night/plymouth/throbber-26.png new file mode 100644 index 0000000..fa79cbc Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-26.png differ diff --git a/themes/tokyo-night/plymouth/throbber-27.png b/themes/tokyo-night/plymouth/throbber-27.png new file mode 100644 index 0000000..1831e15 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-27.png differ diff --git a/themes/tokyo-night/plymouth/throbber-28.png b/themes/tokyo-night/plymouth/throbber-28.png new file mode 100644 index 0000000..91cd396 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-28.png differ diff --git a/themes/tokyo-night/plymouth/throbber-29.png b/themes/tokyo-night/plymouth/throbber-29.png new file mode 100644 index 0000000..00a392b Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-29.png differ diff --git a/themes/tokyo-night/plymouth/throbber-30.png b/themes/tokyo-night/plymouth/throbber-30.png new file mode 100644 index 0000000..688f443 Binary files /dev/null and b/themes/tokyo-night/plymouth/throbber-30.png differ