summaryrefslogtreecommitdiff
path: root/system/grub2/05_debian_theme
diff options
context:
space:
mode:
Diffstat (limited to 'system/grub2/05_debian_theme')
-rw-r--r--system/grub2/05_debian_theme61
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 0000000000..4c8a00b05e
--- /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