Plymouth is a project from Fedora and now listed among the freedesktop.org's official resources providing a flicker-free graphical boot process. It relies on kernel mode setting (KMS) to set the native resolution of the display as early as possible, then provides an eye-candy splash screen leading all the way up to the login manager.
- 1 Preparation
- 2 Installation
- 3 Configuration
- 4 Tips and tricks
- 5 Troubleshooting
- 6 See also
Plymouth primarily uses KMS (Kernel Mode Setting) to display graphics. In EFI/UEFI systems, plymouth can utilize the EFI framebuffer. If you cannot use KMS, e.g. because you are using a proprietary driver, or if you do not want to use the EFI framebuffer, consider using Uvesafb as it works with widescreen resolutions.
If you have neither KMS nor a framebuffer, Plymouth will fall back to text-mode.
Plymouth is available from the AUR: the stable package is AUR and the development version is AUR.
If you also use GDM, you should install the AUR, which compiles gdm with plymouth support.
The plymouth hook
plymouth to the
HOOKS array in mkinitcpio.conf. It must be added after
udev for it to work:
HOOKS=(base udev plymouth ...)
- If you use hard drive encryption with the
encrypthook, you must replace the
plymouth-encryptand add it after the
plymouthhook in order to get to the TTY password prompts.
cryptdevice=parameter does not work with
- For a ZFS encrypted root[broken link: invalid section], you must install AUR and replace the
After adding the
plymouth-encrypt hook, if input goes to the background in plaintext instead of into the password prompt you need to add your (kernel) graphics driver to your initramfs. For example, if using intel:
This might also be a step needed for some themes to work.
Alternative plymouth hook (systemd)
If your mkinitcpio.conf includes the
systemd hook, then replace
sd-plymouth. Additionally, if using hard drive encryption, use
sd-encrypt instead of
HOOKS=(base systemd sd-plymouth ... sd-encrypt ...)
The kernel command line
To enable smooth transition (if supported) you have to:
- Disable your display manager unit, e.g.
- Enable the respective DM-plymouth unit (GDM, LXDM, SLiM, LightDM, SDDM units provided), e.g.
Plymouth has a configuration option to delay the splash screen:
[Daemon] Theme=spinner ShowDelay=5
On systems that boot quickly, you may only see a flicker of your splash theme before your DM or login prompt is ready. You can set
ShowDelay to an interval (in seconds) longer than your boot time to prevent this flicker and only show a blank screen.
The default is 5 seconds, but you may wish to change this to a lower value to see your splash earlier during boot.
Change background image
Certain themes (such as spinner) can have their background image changed. On spinner, by default it is a grey noise pattern. To change it, replace
/usr/share/plymouth/themes/theme/background-tile.png with your desired image. You may want to copy and create a new theme when doing this, to prevent it from being overridden by updates to Plymouth. Do not forget to regenerate the theme once changed, see the next section for how.
Changing the theme
Plymouth comes with a selection of themes:
- Fade-in: "Simple theme that fades in and out with shimmering stars"
- Glow: "Corporate theme with pie chart boot progress followed by a glowing emerging logo"
- Script: "Script example plugin" (Despite the description seems to be a quite nice Arch logo theme)
- Solar: "Space theme with violent flaring blue star"
- Spinner: "Simple theme with a loading spinner"
- Spinfinity: "Simple theme that shows a rotating infinity sign in the center of the screen"
- (Text: "Text mode theme with tricolor progress bar")
- (Details: "Verbose fallback theme")
Development version of Plymouth (AUR) also comes with the BGRT (Boot Graphics Resource Table) theme, which is a variation of Spinner that keeps the OEM logo if available.
In addition you can install other themes from AUR, just have a look at the "Required by"-Array on AUR.
All currently installed themes can be listed by using this command:
$ plymouth-set-default-theme -l
$ ls /usr/share/plymouth/themes
details glow solar spinner tribar fade-in script spinfinity text
By default, the spinner theme is selected. The theme can be changed by editing
/etc/plymouth/plymouthd.conf, for example:
[Daemon] Theme=spinner ShowDelay=5
Themes can be previewed without rebuilding, press
Ctrl+Alt+F6 to switch to a text terminal, log in as root and type:
# plymouthd # plymouth --show-splash
To quit the preview, press
Ctrl+Alt+F6 again and type:
# plymouth --quit
Every time a theme is changed, the
initrd must be rebuilt. The
-R option ensures that it is rebuilt (otherwise manually run
# plymouth-set-default-theme -R theme
If you use dracut instead of mkinitcpio, you need to run dracut manually as Arch's plymouth scripts do not support dracut.
# dracut /boot/initramfs-linux.img --force # dracut -N /boot/initramfs-linux-fallback.img --force
and rebuild the initrd.
Tips and tricks
Show kernel messages
During boot you can switch to kernel messages by pressing the
Adding Arch Logo to spinner and BGRT themes
To add the Arch Logo to the spinner and BGRT themes copy the Arch logo to the spinner theme directory with the name
# cp /usr/share/plymouth/arch-logo.png /usr/share/plymouth/themes/spinner/watermark.png
To center the logo (if not already centered), add the following lines to the theme's configuration file (file name ending with
Replacing the Arch Logo and creating custom themes
The following themes use the Arch Linux logo supplied by Plymouth in
/usr/share/plymouth/arch-logo.png: fade-in, script, solar, spinfinity. If you want to use another logo, you can take one of them or one of the plymouth themes in AUR, edit the file
*.plymouth (and maybe
*.script, too) and replace this image with one of your choice. You should create a package from your newly created theme, because changes in
/usr/share/plymouth may not be persistent across package upgrades.
After installing and selecting your theme, you should rebuild the initrd image to use the new splash.
plymouthd.conf is edited, the initrd should be rebuilt.
Running Plymouth in debug mode
Add the kernel parameter
plymouth.debug in which the debug logs will be stored in
/var/log/plymouth-debug.log or use
Plymouth bootsplash does not show
Make sure that the correct graphics module is added to
/etc/mkinicpio.conf if the theme is graphical and not text.
ShowDelay to 0 if your computer boots fast.
In some computers, initialising graphics may be slow, so change
/etc/plymouth/plymouthd.conf to 8.
Plymouth bootsplash freezes/hangs
The udev hook may freeze plymouth (non-git) due to a bug. In that case use the systemd hook. See: