install.fairie/home/.chezmoiscripts/universal/run_onchange_after_61-plymouth-settings.tmpl
Brian Zalewski f485de8511 Update 2 files
- /home/.chezmoiscripts/universal/run_onchange_after_61-plymouth-settings.tmpl
- /home/.chezmoiscripts/universal/run_onchange_after_19-theme-files.tmpl
2023-01-13 01:35:18 +00:00

80 lines
3.3 KiB
Cheetah

{{- if (eq .host.distro.family "linux") -}}
#!/usr/bin/env bash
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
### Ensure Plymouth system packages are installed
if command -v install-software > /dev/null; then
install-software plymouth
fi
### Apply update-alternatives
if command -v update-alternatives > /dev/null; then
if [ -f "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" ]; then
sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" 100
logg success 'Installed `default.plymouth`'
# Required sometimes
sudo update-alternatives --set default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth"
logg success 'Set `default.plymouth`'
else
logg warn "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth does not exist!"
fi
else
logg warn '`update-alternatives` is not available'
fi
### Update /etc/plymouth/plymouthd.conf
if [ -f /etc/plymouth/plymouthd.conf ]; then
logg info 'Setting ShowDelay=1 in /etc/plymouth/plymouthd.conf'
if cat /etc/plymouth/plymouthd.conf | grep ShowDelay; then
sudo sed -i '/^ShowDelay=.*/ShowDelay=1/' /etc/plymouth/plymouthd.conf
else
echo 'ShowDelay=1' | sudo tee -a /etc/plymouth/plymouthd.conf
fi
else
logg warn '/etc/plymouth/plymouthd.conf does not exist!'
fi
### Set default Plymouth theme
if command -v plymouth-set-default-theme > /dev/null; then
sudo plymouth-set-default-theme -R '{{ .theme }}' || EXIT_CODE=$?
if [ -n "$EXIT_CODE" ]; then
logg warn 'There may have been an issue while setting the Plymouth default theme with `plymouth-set-default-theme`'
else
logg success 'Set Plymouth default theme with `plymouth-set-default-theme`'
fi
else
logg warn 'Could not apply default Plymouth theme because `plymouth-set-default-theme` is missing'
fi
### Apply update-alternatives (again - required sometimes)
if command -v update-alternatives > /dev/null; then
if [ -f "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" ]; then
# Required sometimes
sudo update-alternatives --set default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth"
logg success 'Set `default.plymouth` (second time is required sometimes)'
else
logg warn "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth does not exist!"
fi
else
logg warn '`update-alternatives` is not available'
fi
### Update kernel / initrd images
# Set `export DEBUG_MODE=true` to bypass GRUB2 / Plymouth application
if [ "$DEBUG_MODE" != 'true' ]; then
if command -v update-initramfs > /dev/null; then
logg info 'Running `sudo update-initramfs -u`'
sudo update-initramfs -u
logg success 'Updated kernel / initrd images for Plymouth'
elif command -v dracut > /dev/null; then
logg info 'Running `sudo dracut --regenerate-all -f`'
sudo dracut --regenerate-all -f
logg success 'Updated kernel / initrd images for Plymouth'
else
logg warn 'Unable to update kernel / initrd images because neither `update-initramfs` or `dracut` are available'
fi
fi
{{ end -}}