diff options
Diffstat (limited to 'abs/core/plymouth/plymouth.install')
-rw-r--r-- | abs/core/plymouth/plymouth.install | 80 |
1 files changed, 39 insertions, 41 deletions
diff --git a/abs/core/plymouth/plymouth.install b/abs/core/plymouth/plymouth.install index aafcca8..9194805 100644 --- a/abs/core/plymouth/plymouth.install +++ b/abs/core/plymouth/plymouth.install @@ -1,45 +1,43 @@ -post_install() { -cat <<EOT - -================================================================================== -1. To make Plymouth work: - 1.1. Add "plymouth" to HOOKS after "base" and "udev" in /etc/mkinitcpio.conf - 1.2. Add 'quiet splash' to the grub command line - 1.3. Rebuild your initrd image (# mkinitcpio -p [kernel preset name]). - E.g.: sudo mkinitcpio -p linux - -2. To enable encryption, replace "encrypt" with "plymouth-encrypt" in - mkinitcpio.conf and rebuild your initrd image. - -3. You will also need to rebuild your initrd image every time you change your theme - (the default is set as 'spinfinity'). - - To list all plymouth themes: - plymouth-set-default-theme -l - - To change theme: - # plymouth-set-default-theme <theme> - - To rebuild initrd image: - # mkinitcpio -p linux - -4. For Smooth Transition to Display Manager you have to: - 4.1. See the Wiki Page (link in 5) to prepare your Display Manager - 4.2. Disable your Display Manager Unit - E.g. : systemctl disable kdm.service - 4.3. Enable the respective DM-plymouth Unit (GDM,KDM,Lightdm,LXDM units provided) - E.g. : systemctl enable kdm-plymouth.service - -5. For more information please visit the Wiki page: - https://wiki.archlinux.org/index.php/Plymouth - -OBS. If you have any leftover "kill Plymouth" lines in /etc/rc.local or ~/.xinitrc - they are no longer required. -================================================================================== +build() { + theme="$(get_theme "/etc/plymouth/plymouthd.conf")" + if [[ "$theme" ]]; then + add_file /etc/plymouth/plymouthd.conf + else + # fallback + theme="$(get_theme "/usr/share/plymouth/plymouthd.defaults")" + if [[ ! "$theme" ]]; then + echo "no theme set for plymouth" + exit 1 + fi + add_file /usr/share/plymouth/plymouthd.defaults + fi + + if [[ ! -d "/usr/share/plymouth/themes/$theme" ]]; then + echo "invalid plymouth theme: $theme" + exit 1 + fi + + module="$(get_module "$theme")" + add_file /usr/share/plymouth/arch-logo.png + + add_binary /usr/bin/plymouthd + add_binary /usr/bin/plymouth + + add_binary /usr/lib/plymouth/renderers/drm.so + add_binary /usr/lib/plymouth/renderers/frame-buffer.so + + add_binary /usr/lib/plymouth/$module.so + add_full_dir /usr/share/plymouth/themes/$theme + + add_runscript +} -EOT +# $1 = file +get_theme() { + grep ^Theme= "$1" | cut -d = -f 2- } -post_upgrade() { - post_install +# $1 = theme +get_module() { + grep ^ModuleName= "/usr/share/plymouth/themes/$1/$1.plymouth" | cut -d = -f 2- } |