summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-boot/grub/files/05_distro_theme')
-rw-r--r--sys-boot/grub/files/05_distro_theme51
1 files changed, 51 insertions, 0 deletions
diff --git a/sys-boot/grub/files/05_distro_theme b/sys-boot/grub/files/05_distro_theme
new file mode 100644
index 0000000..cb4c197
--- /dev/null
+++ b/sys-boot/grub/files/05_distro_theme
@@ -0,0 +1,51 @@
+#!/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