PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`#!/bin/bash set -e [ -z "$PLYMOUTH_LIBEXECDIR" ] && PLYMOUTH_LIBEXECDIR="/usr/libexec" [ -z "$PLYMOUTH_DATADIR" ] && PLYMOUTH_DATADIR="/usr/share" [ -z "$PLYMOUTH_CONFDIR" ] && PLYMOUTH_CONFDIR="/etc/plymouth/" [ -z "$PLYMOUTH_POLICYDIR" ] && PLYMOUTH_POLICYDIR="/usr/share/plymouth/" if [ -z "$PLYMOUTH_PLUGIN_PATH" ]; then if [ -z "$LIB" ]; then PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)" else [ -z "$PLYMOUTH_LIBDIR" ] && PLYMOUTH_LIBDIR="/usr/lib64" PLYMOUTH_PLUGIN_PATH=${PLYMOUTH_LIBDIR}/plymouth/ fi fi function usage () { echo "usage: plymouth-set-default-theme { --list | --reset | [ --rebuild-initrd ] | --help }" } function show_help() { cat < Name of new theme to use (see --list for available themes) EOF } function list_themes () { for theme in ${PLYMOUTH_DATADIR}/plymouth/themes/*/*.plymouth; do [ -f $theme ] || continue; echo "$(basename "$theme" .plymouth)" done } function read_theme_name_from_file () { echo $(grep -v '^#' $1 2> /dev/null | awk ' BEGIN { RS="[[][[:blank:]]*[^[:space:]]+[:blank:]*[]\n]"; FS="[=[:space:]]+"; OFS=""; ORS="" } $1 ~/Theme/ { print $2 } ') } function get_default_theme () { THEME_NAME=$(read_theme_name_from_file ${PLYMOUTH_CONFDIR}/plymouthd.conf) if [ -z "$THEME_NAME" -o ! -r "${PLYMOUTH_DATADIR}/plymouth/themes/$THEME_NAME/$THEME_NAME.plymouth" ]; then THEME_NAME=$(read_theme_name_from_file ${PLYMOUTH_POLICYDIR}/plymouthd.defaults) fi if [ -z "$THEME_NAME" -o ! -r "${PLYMOUTH_DATADIR}/plymouth/themes/$THEME_NAME/$THEME_NAME.plymouth" \ -a -L "${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth" ]; then THEME_NAME=$(basename "$(readlink ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth)" .plymouth) fi if [ -z "$THEME_NAME" -o ! -r "${PLYMOUTH_DATADIR}/plymouth/themes/$THEME_NAME/$THEME_NAME.plymouth" ]; then THEME_NAME="text" fi echo $THEME_NAME } DO_RESET=0 DO_INITRD_REBUILD=0 DO_LIST=0 DO_HELP=0 THEME_NAME="" while [ $# -gt 0 ]; do case "$1" in -l|--list) if [ -n "$THEME_NAME" ]; then echo "You can only specify --list or a theme name, not both" >&2 echo $(usage) >&2 exit 1 fi if [ $DO_RESET -ne 0 ]; then echo "You can only specify --reset or --list, not both" >&2 echo $(usage) >&2 exit 1 fi DO_LIST=1 ;; -R|--rebuild-initrd) DO_INITRD_REBUILD=1 ;; -r|--reset|default) if [ -n "$THEME_NAME" ]; then echo "You can only specify --reset or a theme name, not both" >&2 echo $(usage) >&2 exit 1 fi if [ $DO_LIST -ne 0 ]; then echo "You can only specify --reset or --list, not both" >&2 echo $(usage) >&2 exit 1 fi DO_RESET=1 ;; -h|--help) DO_HELP=1 ;; *) if [ -n "$THEME_NAME" ]; then echo "You can only specify one theme at a time" >&2 echo $(usage) >&2 exit 1 fi if [ $DO_RESET -ne 0 ]; then echo "You can only specify --reset or a theme name, not both" >&2 echo $(usage) >&2 exit 1 fi if [ $DO_LIST -ne 0 ]; then echo "You can only specify --list or a theme name, not both" >&2 echo $(usage) >&2 exit 1 fi THEME_NAME="$1" ;; esac shift done if [ $DO_HELP -eq 1 ]; then show_help exit $? fi if [ $DO_LIST -ne 0 ]; then list_themes exit $? fi if [ $DO_RESET -eq 0 ] && [ $DO_INITRD_REBUILD -eq 0 ] && [ -z $THEME_NAME ]; then get_default_theme exit $? fi if [ `id -u` -ne 0 ]; then echo "This program must be run as root" >&2 exit 1 fi if [ $DO_RESET -ne 0 ]; then [ -f ${PLYMOUTH_CONFDIR}/plymouthd.conf ] || exit 0 sed -i -e '/^Theme[[:blank:]]*=.*/d' ${PLYMOUTH_CONFDIR}/plymouthd.conf exit $? fi if [ ! -e ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth ]; then echo "${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth does not exist" >&2 exit 1 fi MODULE_NAME=$(grep "ModuleName *= *" ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth | sed 's/ModuleName *= *//') if [ ! -e ${PLYMOUTH_PLUGIN_PATH}${MODULE_NAME}.so ]; then echo "${PLYMOUTH_PLUGIN_PATH}${MODULE_NAME}.so does not exist" >&2 exit 1 fi [ -L ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth ] && rm -f ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth [ -d ${PLYMOUTH_CONFDIR} ] || mkdir -p ${PLYMOUTH_CONFDIR} grep -q '^[[]Daemon[]]' ${PLYMOUTH_CONFDIR}/plymouthd.conf 2> /dev/null || echo '[Daemon]' >> ${PLYMOUTH_CONFDIR}/plymouthd.conf sed -i -e '/^Theme[[:blank:]]*=.*/d' ${PLYMOUTH_CONFDIR}/plymouthd.conf sed -i -e "s/^\([[]Daemon[]]\)\n*/\1\nTheme=${THEME_NAME}/" ${PLYMOUTH_CONFDIR}/plymouthd.conf [ $DO_INITRD_REBUILD -ne 0 ] && (${PLYMOUTH_LIBEXECDIR}/plymouth/plymouth-update-initrd) exit 0