Published multiple files
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
This commit is contained in:
131
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
Normal file
131
content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
Normal file
@@ -0,0 +1,131 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Plymouth.md
|
||||
title: Plymouth
|
||||
created: 2026-02-05T09:31:46.739-07:00
|
||||
modified: 2026-02-05T09:43:32.507-07:00
|
||||
tags:
|
||||
- boot
|
||||
- splash
|
||||
- luks
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Plymouth provides a graphical boot splash screen, including during LUKS password entry.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo pacman -S plymouth
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### mkinitcpio (systemd hooks)
|
||||
|
||||
I use systemd-based initramfs hooks. Edit `/etc/mkinitcpio.conf`:
|
||||
|
||||
```bash
|
||||
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole plymouth sd-encrypt block filesystems resume fsck)
|
||||
```
|
||||
|
||||
Key points:
|
||||
- Using `systemd` not `udev`
|
||||
- Using `sd-vconsole` not `keymap consolefont`
|
||||
- Using `sd-encrypt` not `encrypt`
|
||||
- `plymouth` comes **after** `sd-vconsole` and **before** `sd-encrypt`
|
||||
|
||||
Regenerate initramfs:
|
||||
```bash
|
||||
sudo mkinitcpio -P
|
||||
```
|
||||
|
||||
### Kernel 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 of `cryptdevice=`
|
||||
|
||||
**For systemd-boot** (`/boot/loader/entries/arch.conf`):
|
||||
```
|
||||
options quiet splash rd.luks.uuid=<UUID> root=/dev/mapper/root ...
|
||||
```
|
||||
|
||||
### Set Theme
|
||||
|
||||
```bash
|
||||
# List available themes
|
||||
plymouth-set-default-theme -l
|
||||
|
||||
# Set theme (and rebuild initramfs)
|
||||
sudo plymouth-set-default-theme -R spinner
|
||||
```
|
||||
|
||||
Popular themes:
|
||||
- `spinner` — Simple spinner (default)
|
||||
- `bgrt` — Uses manufacturer logo from ACPI
|
||||
- `fade-in` — Fading star field
|
||||
|
||||
### Install more themes
|
||||
|
||||
```bash
|
||||
paru -S plymouth-theme-arch-logo
|
||||
paru -S plymouth-theme-monoarch
|
||||
```
|
||||
|
||||
## LUKS Integration
|
||||
|
||||
Plymouth displays the LUKS password prompt graphically instead of the text console.
|
||||
|
||||
For this to work with systemd hooks:
|
||||
1. `plymouth` hook must be before `sd-encrypt` hook
|
||||
2. `splash` must be in kernel parameters
|
||||
3. 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:
|
||||
```bash
|
||||
sudo plymouthd
|
||||
sudo plymouth --show-splash
|
||||
# Press Enter to dismiss
|
||||
sudo plymouth quit
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### No splash on boot
|
||||
|
||||
1. Verify `splash` is in kernel params
|
||||
2. Check hook order in mkinitcpio.conf
|
||||
3. Regenerate initramfs: `sudo mkinitcpio -P`
|
||||
|
||||
### LUKS prompt is text-only
|
||||
|
||||
The `plymouth` hook must come **before** `sd-encrypt`:
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user