diff options
Diffstat (limited to 'system/grub2/05_debian_theme')
-rw-r--r-- | system/grub2/05_debian_theme | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/system/grub2/05_debian_theme b/system/grub2/05_debian_theme new file mode 100644 index 000000000000..4c8a00b05ed1 --- /dev/null +++ b/system/grub2/05_debian_theme @@ -0,0 +1,61 @@ +#!/bin/bash -e + +source /usr/lib/grub/grub-mkconfig_lib + +# this allows desktop-base to override our settings +f=/usr/share/desktop-base/grub_background.sh +if test -e ${f} ; then + source ${f} +else + WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png" + COLOR_NORMAL="white/black" + COLOR_HIGHLIGHT="white/light-gray" +fi + +set_mono_theme() +{ + cat << EOF +set menu_color_normal=white/black +set menu_color_highlight=black/light-gray +EOF +} + +# check for usable backgrounds +use_bg=false +if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then + for i in /boot/grub/`basename ${WALLPAPER}` ${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=${COLOR_NORMAL} + set color_highlight=${COLOR_HIGHLIGHT} +else +EOF +fi + +# otherwise, set a monochromatic theme for Ubuntu +if ${use_bg} ; then + set_mono_theme | sed -e "s/^/ /g" + echo "fi" +else + set_mono_theme +fi |