Plymouth

From ArchWiki

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.

Preparation

Plymouth primarily uses KMS to display graphics, but on UEFI systems it 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.

Installation

Plymouth is available with the stable package is plymouth and the development version is plymouth-gitAUR.

By default, Plymouth logs the boot messages into /var/log/boot.log, and does not show the graphical splash screen.

  • If you want to see the splash screen, append splash to the kernel parameters.
  • If you want silent boot, append quiet too.
  • If you want to disable the logging, append plymouth.nolog.

To start Plymouth on early boot, you must configure your initramfs generator to create images including Plymouth.

mkinitcpio

Add plymouth to the HOOKS array in mkinitcpio.conf.

/etc/mkinitcpio.conf
HOOKS=(... plymouth ...)

dracut

After installing Plymouth, dracut will automatically detect it and add it to your initramfs images. If autodetection fails, you can force dracut to include Plymouth by adding the following line to your dracut configuration:

/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "

Configuration

Plymouth can be configured in file /etc/plymouth/plymouthd.conf. You can see the default values in /usr/share/plymouth/plymouthd.defaults.

Changing the theme

Plymouth comes with a selection of themes:

  1. BGRT: A variation of Spinner that keeps the OEM logo if available (BGRT stands for Boot Graphics Resource Table)
  2. Fade-in: "Simple theme that fades in and out with shimmering stars"
  3. Glow: "Corporate theme with pie chart boot progress followed by a glowing emerging logo"
  4. Script: "Script example plugin" (Despite the description seems to be a quite nice Arch logo theme)
  5. Solar: "Space theme with violent flaring blue star"
  6. Spinner: "Simple theme with a loading spinner"
  7. Spinfinity: "Simple theme that shows a rotating infinity sign in the center of the screen"
  8. Tribar: "Text mode theme with tricolor progress bar"
  9. (Text: "Text mode theme with tricolor progress bar")
  10. (Details: "Verbose fallback theme")

In addition you can install other themes from AUR. [1]

All currently installed themes can be listed by using this command:

$ plymouth-set-default-theme -l

or:

$ ls /usr/share/plymouth/themes
bgrt  details  fade-in  glow  script  solar  spinfinity  spinner  text  tribar

By default, the bgrt theme is selected. The theme can be changed editing the configuration file, for example:

/etc/plymouth/plymouthd.conf
[Daemon]
Theme=fade-in

or by this command:

# plymouth-set-default-theme -R theme

Every time a theme is changed, the initrd must be rebuilt. The -R option ensures that it is rebuilt (otherwise regenerate the initramfs manually).

Show delay

Plymouth has a configuration option to delay the splash screen:

/etc/plymouth/plymouthd.conf
[Daemon]
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 0 seconds, so you should not need to change this to a different value to see your splash earlier during boot.

HiDPI

Edit the configuration file:

/etc/plymouth/plymouthd.conf
DeviceScale=an-integer-scaling-factor

and rebuild the initrd.

Tips and tricks

Show boot messages

During boot you can switch to boot messages by pressing the Home or Esc keys.

Smooth transition

If using GDM, install gdm-plymouthAUR which supports smooth transition out of the box (no other steps are required as it cleanly replaces gdm).

Optimus-manager users on GDM can install gdm-plymouth-primeAUR, which is a fork of gdm-plymouthAUR with the required patches to support Prime switching.

Users of other display managers (SDDM, LightDM or LXDM) will have to:

  1. Disable your display manager unit, e.g. lxdm.service.
  2. Enable the respective DM-plymouth unit provided, e.g. lxdm-plymouth.service.

Preview themes

Themes can be previewed without rebuilding initrd, 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

Change background image

You can add a background image for two-step-based themes (such as spinner and bgrt). Just place your desired image into /usr/share/plymouth/themes/spinner/background-tile.png. Do not forget to regenerate the initrd once the theme changed.

Missing BGRT image

In case you are using the BGRT theme but the UEFI does not provide a vendor logo, you can place a fallback image into /usr/share/plymouth/themes/spinner/bgrt-fallback.png to show it instead.

Slow down boot to show the full animation

On systems with a very fast boot time, it might necessary to add a delay to plymouth-quit.service with a drop-in snippet containing ExecStartPre=/usr/bin/sleep 5 if showing the whole animation is desired. See this reddit post.

Troubleshooting

If you experience problems during boot, you can temporary disable Plymouth with the following kernel parameters:

plymouth.enable=0 disablehooks=plymouth

See also