the least "hacky" way to achieve this is by installing plymouth and making it work with dinit, like such:
appending quiet and splash as a kernel parameter in (/etc/default/grub):
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash"
regenerating the grub config (the following command is bios-specific afaik):
sudo grub-mkconfig -o /boot/grub/grub.cfg
adding plymouth to the (/etc/mkinitcpio.conf) hooks:
HOOKS=(base udev plymouth autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
making a dinit service (/etc/dinit.d/plymouth-quit) to quit plymouth in boot:
type = scripted
command = /usr/bin/plymouth quit --retain-splash
after = elogind
before = tty1
enabling it:
sudo dinitctl enable plymouth-quit
writing a custom shutdown hook for dinit (/etc/dinit/shutdown-hook) which calls plymouth on shutdown/reboot, and making it executable with chmod +x:
#!/bin/sh
/usr/bin/plymouthd --mode=shutdown --attach-to-session
/usr/bin/plymouth show-splash
if [ -x /lib/dinit/shutdown-hook ]; then
/lib/dinit/shutdown-hook
fi
then setting up the default theme and regenerating the initframfs:
sudo plymouth-set-default-theme -R spinner
---
however, this has two caveats:
1. the pre-shutdown messages would still appear before plymouth
2. agetty/login will not appear and tty switching will be impossible, so this will render the system unusable unless you setup autologin on tty1:
GETTY_ARGS="--skip-login --nonewline --noissue --autologin [USER] --noclear"
also, switching to tty2/3/etc in that case is buggy (you will need to switch then press any key for the tty to appear)
---
would appreciate if anyone knowledgeable pinpoints the issues, all of this is extremely duct-taped