Skip to content

Conversation

@mlombardi96
Copy link
Contributor

This PR updates the Omarchy Plymouth theme so that there is a smoother handoff between fake and real progress once the drive is decrypted. It also includes some formatting changes so that the script it easier to read.

Before (big jump in progress once the drive is unlocked):

before.mov

After (smooth progress bar all the way through boot):

after.mov

Copy link
Contributor Author

@mlombardi96 mlombardi96 Nov 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Due to all the formatting changes, it's easier to review this file with whitespace hidden.

stop_fake_progress();
update_progress_bar(progress);
}
fun progress_callback(duration, progress) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the main change. The progress_callback function is called several times a second throughout the boot process.

However, while the drive is being decrypted, the duration and progress arguments stop updating and are frozen until the drive is unlocked.

To handle this, we record the duration value the moment fake progress starts. Once the drive is unlocked, duration/progress will start updating again.

We switch to showing real progress once the fake progress values are exceeded so that there's a seamless handoff.

{
logo.sprite.SetOpacity (1);
# Use real progress once its unfrozen and exceeds fake progress
if (duration > global.fake_progress_start_time && progress > global.fake_progress) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I experimented with not tracking the starting duration at all and only having progress > global.fake_progress in this condition.

However, there are certain scenarios where the "frozen" real progress value is greater than the fake progress value as soon as the progress bar is shown, which results in only the real progress being shown the entire boot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant