52 lines
1.2 KiB
Bash
52 lines
1.2 KiB
Bash
#!/bin/bash -e
|
|
|
|
. /lib/grub/grub-mkconfig_lib
|
|
|
|
set_blue_theme()
|
|
{
|
|
cat << EOF
|
|
set menu_color_normal=cyan/blue
|
|
set menu_color_highlight=white/blue
|
|
EOF
|
|
}
|
|
|
|
# check for usable backgrounds
|
|
use_bg=false
|
|
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] && [ -n "${GRUB_WALLPAPER}" ]; then
|
|
for i in /boot/grub/`basename ${GRUB_WALLPAPER}` ${GRUB_WALLPAPER} ; do
|
|
if is_path_readable_by_grub $i ; then
|
|
bg=$i
|
|
case ${bg} in
|
|
*.png) reader=png ;;
|
|
*.tga) reader=tga ;;
|
|
*.jpg|*.jpeg) reader=jpeg ;;
|
|
esac
|
|
if test -e /boot/grub/${reader}.mod ; then
|
|
echo "Found background image: `basename ${bg}`" >&2
|
|
use_bg=true
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# set the background if possible
|
|
if ${use_bg} ; then
|
|
prepare_grub_to_access_device `${grub_probe} --target=device ${bg}`
|
|
cat << EOF
|
|
insmod ${reader}
|
|
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
|
|
set color_normal=${GRUB_COLOR_NORMAL}
|
|
set color_highlight=${GRUB_COLOR_HIGHLIGHT}
|
|
else
|
|
EOF
|
|
fi
|
|
|
|
# otherwise, set the traditional Debian blue theme
|
|
if ${use_bg} ; then
|
|
set_blue_theme | sed -e "s/^/ /g"
|
|
echo "fi"
|
|
else
|
|
set_blue_theme
|
|
fi
|