Custom Boot Splash Screen
Introduction
Section titled “Introduction”Raspberry Pi OS ships a Plymouth-based boot splash, the pix theme. You can clone it and swap in a custom image without touching the underlying splash mechanism. This guide clones pix into a new voron theme, drops in one of the Voron splash images from samwiseg0’s misc_3dprinting repository, and enables it at boot.
This guide targets Raspberry Pi OS Bookworm and Trixie.
By the end, you will have:
- The
rpd-plym-splashpackage installed, providing the stockpixPlymouth theme - A
voronPlymouth theme cloned frompixat/usr/share/plymouth/themes/voron - A Voron splash image installed as that theme’s
splash.png - The
vorontheme set as default, with the initrd rebuilt to match - The splash screen enabled at boot, and the firmware rainbow/color-test screen disabled
Prerequisites
Section titled “Prerequisites”- SSH access to the printer host
- A user with
sudoaccess - Raspberry Pi OS Bookworm or Trixie
- Network access from the printer host to GitHub, to download the splash image
Install the Plymouth splash package
Section titled “Install the Plymouth splash package”-
Update the APT package index:
Updating package indexes sudo apt update -
Install the Plymouth splash package:
Installing rpd-plym-splash sudo apt install -y rpd-plym-splashThis pulls in Plymouth itself plus the
pixtheme at/usr/share/plymouth/themes/pix. That includespix.script.raspi-configchecks for this file before it lets you enable the splash screen.
Create the Voron theme
Section titled “Create the Voron theme”Clone the pix theme into a new voron theme rather than editing pix in place, so the original theme stays intact as a fallback.
-
Copy the theme directory:
Cloning the pix theme cd /usr/share/plymouth/themes/sudo cp -a pix voroncd voron -
Rename the script and theme definition files to match:
Renaming theme files sudo mv pix.script voron.scriptsudo mv pix.plymouth voron.plymouth
Download the splash image
Section titled “Download the splash image”Download the image as your regular user into /tmp first, rather than running wget under sudo directly against a system directory. A failed or partial download then never touches /usr/share. sudo only shows up for the final copy.
The example below uses the gunmetal splash. Other colors are available from the same repository; see the table below.
-
Download the image to a staging location:
Downloading the splash image wget -O /tmp/voron-splash.png \https://raw.githubusercontent.com/samwiseg0/misc_3dprinting/main/guides/voron_rpi_bootscreen/Images/voron_splash_gunmetal.png -
Confirm the download is a valid PNG:
Checking the downloaded file file /tmp/voron-splash.pngThe output should report a PNG image, not
HTML documentorempty. -
Copy the image into the theme directory as
splash.png, replacing the original:Installing the splash image sudo cp /tmp/voron-splash.png /usr/share/plymouth/themes/voron/splash.png
Fix the theme definition file
Section titled “Fix the theme definition file”voron.plymouth still refers to the old pix paths and name after the rename. Fix it with sed instead of opening an editor:
sudo sed -i 's/pix/voron/g' /usr/share/plymouth/themes/voron/voron.plymouthThis replaces every pix reference (theme name, image directory, script file path) with voron. It only touches lines that still say pix, so running it again after it succeeds once is a no-op.
Verify the result:
cat /usr/share/plymouth/themes/voron/voron.plymouthIt should read:
[Plymouth Theme]Name=voronDescription=Raspberry Pi Desktop SplashModuleName=script
[script]ImageDir=/usr/share/plymouth/themes/voronScriptFile=/usr/share/plymouth/themes/voron/voron.scriptSet the Voron theme as default
Section titled “Set the Voron theme as default”Set voron as the default Plymouth theme and rebuild the initrd so the new theme is baked into the boot image:
sudo plymouth-set-default-theme --rebuild-initrd voronEnable the splash screen at boot
Section titled “Enable the splash screen at boot”Enable the boot splash without going through the raspi-config menu:
sudo raspi-config nonint do_boot_splash 0This appends quiet splash plymouth.ignore-serial-consoles to cmdline.txt (/boot/firmware/cmdline.txt on Bookworm and Trixie) if those options aren’t already present, so it’s safe to run more than once.
Disable the firmware rainbow splash
Section titled “Disable the firmware rainbow splash”The Raspberry Pi firmware shows its own rainbow/color-test screen before Plymouth starts. Disable it by adding disable_splash=1 to config.txt, guarding against adding the line twice:
grep -qxF 'disable_splash=1' /boot/firmware/config.txt || \ echo 'disable_splash=1' | sudo tee -a /boot/firmware/config.txtReboot and verify
Section titled “Reboot and verify”sudo rebootAfter the printer host comes back up, the Voron splash should appear during boot in place of the Raspberry Pi rainbow screen and the default pix splash.
Revert to the default theme
Section titled “Revert to the default theme”To go back to the stock Raspberry Pi splash:
sudo plymouth-set-default-theme --rebuild-initrd pixTo also turn the splash screen off entirely:
sudo raspi-config nonint do_boot_splash 1The voron theme directory and the downloaded image are left in place; delete /usr/share/plymouth/themes/voron manually if you no longer want them.
Troubleshooting
Section titled “Troubleshooting”Splash screen never appears
Section titled “Splash screen never appears”-
Confirm
splashwas added tocmdline.txt:Checking cmdline.txt cat /boot/firmware/cmdline.txtIf
splashis missing, re-runsudo raspi-config nonint do_boot_splash 0. -
Confirm the
vorontheme is set as default:Checking the default theme plymouth-set-default-themeThis should print
voron. If it doesn’t, re-run theplymouth-set-default-theme --rebuild-initrd voroncommand.
Rainbow screen still appears before the splash
Section titled “Rainbow screen still appears before the splash”Confirm disable_splash=1 is present in config.txt:
grep disable_splash /boot/firmware/config.txtImage looks stretched, cropped, or has black bars
Section titled “Image looks stretched, cropped, or has black bars”The source images aren’t guaranteed to match your display’s exact resolution or aspect ratio. Plymouth scales the image to fit, which can distort or crop it on some displays. No universal fix for this: edit the PNG to match your screen’s aspect ratio before copying it into the theme directory, or try a different attached display.
Initrd rebuild finishes but the splash doesn’t change
Section titled “Initrd rebuild finishes but the splash doesn’t change”Some Bookworm updates changed how the initrd gets rebuilt. If the splash doesn’t change after a reboot despite no errors, force an initramfs rebuild directly:
sudo update-initramfs -uThen reboot again.