Vipul Gupta
Vipul is a software engineer at balena and a documentarian running his docs initiative called Mixster. He advocates strongly for open-source, cheesecakes and party parrots.
Bootloader's frontend
Available all over the web by vipulgupta2048
Student, Programmer, Writer, Open-Source Contributor,
Traveller, C&H Comics Collector
Tweet @vipulgupta2048
Is scriptable (YESS)
In Windows, kernel error display is made possible by KMS.
Officially called "bug check", Popularly known as the Blue Screen of Death.
A daemon (server) process called plymouthd
A client application called plymouth
A library libply.so to allow applications to be written to talk to the daemon
(The plymouth command is linked to libply.so for this reason)
plymouthd is generally started in the initramfs plymouthd is stopped at the point the Display Manager is starting.
plymouthd is started by Upstart
Cool Examples coming through !!
Need to install Plymouth-Themes
sudo apt update
sudo apt install plymouth-themes
git clone https://github.com/vipulgupta2048/dotvfiles
Creating base files
mkdir /usr/share/plymouth/themes/YOUR_THEME_NAME
touch /usr/share/plymouth/themes/YOUR_THEME_NAME/YOUR_THEME_NAME.plymouth
touch /usr/share/plymouth/themes/YOUR_THEME_NAME/YOUR_THEME_NAME.script
[Plymouth Theme]
Name=Ubuntu Logo
Description=A theme that features a blank background with a logo.
ModuleName=script
[script]
ImageDir=/lib/plymouth/themes/ubuntu-logo
ScriptFile=/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.script
# Installing the theme
sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/YOUR_THEME_NAME/YOUR_THEME_NAME.plymouth 200
# Choosing its preference
sudo update-alternatives --config default.plymouth
# Modifying kernel image with -u parameter (Update mode)
sudo update-initramfs -u
The world is your oyster and the only thing that limits you is what you can see and imagine.
- Vipul Gupta
See how other themes work.
Keep things that work, tweak what doesn't.
Plymouth Scripting Language is very similar to C or JavaScript.
Containing 2 main objects
Image -To create a new Image, give the filename of an image within the theme directory.
background = Image ("black.png");
# Images with text
text_message_image = Image.Text("I love Ubuntu");
# Finding image dmensions
image_area = background.GetWidth() * background.GetHeight();
# Image can be Rotated. The parameter to Rotate is the angle in radians
down_image = logo_image.Rotate (3.1415);
# make the image four times the width
fat_image = background.Scale ( background.GetWidth() * 4 , background.GetHeight () )
Containing 2 objects
Sprite - To place the Image on screen, setting background positions and a lot more
# Creating a Sprite
first_sprite = Sprite ();
first_sprite.SetImage (background);
#How to set different the sprite to different positions on screen (x,y,z):
first_sprite.SetX (300);
first_sprite.SetY (200);
background.SetZ(-20);
foreground.SetZ(50);
first_sprite.Setposition(300, 200, 50)
# put at x=300, y=200, z=50 - Changing opacity:
faded_sprite.SetOpacity (0.3);
invisible_sprite.SetOpacity (0);
# Some miscellaneous methods used are:
Window.GetWidth();
Window.GetHeight();
Window.SetBackgroundTopColor (0.5, 0, 0);
Window.SetBackgroundBottomColor (0.4, 0.3, 0.6);
# returns a string of one of: "boot", "shutdown", "suspend", "resume" or unknown.
Plymouth.GetMode();
Questions? Any feedback
Did you like the talk? tweet about it. Retweets guaranteed !!
Vipul Gupta
Student, Programmer, Writer, Open-Source Contributor, Traveller, C&H Comics Collector
Tweet @vipulgupta2048
By Vipul Gupta
The only guide you will ever need to be working with Plymouth for tweaking your boot screen to turn all heads in a room.
Vipul is a software engineer at balena and a documentarian running his docs initiative called Mixster. He advocates strongly for open-source, cheesecakes and party parrots.