Plymouth provides a graphical boot splash screen, including during LUKS password entry.
Installation
sudo pacman -S plymouthConfiguration
mkinitcpio (systemd hooks)
I use systemd-based initramfs hooks. Edit /etc/mkinitcpio.conf:
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole plymouth sd-encrypt block filesystems resume fsck)Key points:
- Using
systemdnotudev - Using
sd-vconsolenotkeymap consolefont - Using
sd-encryptnotencrypt plymouthcomes aftersd-vconsoleand beforesd-encrypt
Regenerate initramfs:
sudo mkinitcpio -PKernel Parameters
Add splash to your bootloader config.
For Limine (/boot/EFI/limine/limine.conf):
cmdline: quiet splash rd.luks.uuid=<UUID> root=/dev/mapper/root ...
Note: With systemd hooks, use
rd.luks.uuid=instead ofcryptdevice=
For systemd-boot (/boot/loader/entries/arch.conf):
options quiet splash rd.luks.uuid=<UUID> root=/dev/mapper/root ...
Set Theme
# List available themes
plymouth-set-default-theme -l
# Set theme (and rebuild initramfs)
sudo plymouth-set-default-theme -R spinnerPopular themes:
spinner— Simple spinner (default)bgrt— Uses manufacturer logo from ACPIfade-in— Fading star field
Install more themes
paru -S plymouth-theme-arch-logo
paru -S plymouth-theme-monoarchLUKS Integration
Plymouth displays the LUKS password prompt graphically instead of the text console.
For this to work with systemd hooks:
plymouthhook must be beforesd-encrypthooksplashmust be in kernel parameters- Use
rd.luks.uuid=for LUKS device specification
systemd vs udev Hooks
| udev-based | systemd-based |
|---|---|
udev | systemd |
keymap consolefont | sd-vconsole |
encrypt | sd-encrypt |
cryptdevice=UUID=...:name | rd.luks.uuid=... |
Testing
Test without rebooting:
sudo plymouthd
sudo plymouth --show-splash
# Press Enter to dismiss
sudo plymouth quitTroubleshooting
No splash on boot
- Verify
splashis in kernel params - Check hook order in mkinitcpio.conf
- Regenerate initramfs:
sudo mkinitcpio -P
LUKS prompt is text-only
The plymouth hook must come before sd-encrypt:
HOOKS=(... sd-vconsole plymouth sd-encrypt ...)View boot messages
Remove quiet temporarily to see boot messages if Plymouth isn’t working.
Resources
- Arch Wiki: https://wiki.archlinux.org/title/Plymouth
- Arch Wiki (mkinitcpio systemd): https://wiki.archlinux.org/title/Mkinitcpio#Common_hooks