From f6be3d41e24e685846dfc90ac1ca447501813687 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 26 Apr 2016 15:59:03 +0200
Subject: [PATCH] SUSE: Add the "t" hotkey

While graphical output is fancy and nice, in some environments (EFI) we can
only have fancy graphical on frame buffer _or_ ugly serial on any output.

To give the user a nicely graphical screen in the default case, but still
allow them to get their boot menu on the serial console, let's add a new
hidden option "t" that switches the output device back to the firmware default.

Signed-off-by: Alexander Graf <agraf@suse.de>
---

v1 -> v2

  - use hiddenentry instead of --hidden

v2 -> v3 (by fvogt@suse.de)

  - make it a runtime decision (bsc#1164385)

--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -552,6 +552,12 @@
   installdir = grubconf;
 };
 
+script = {
+  name = '95_textmode';
+  common = util/grub.d/95_textmode.in;
+  installdir = grubconf;
+};
+
 program = {
   mansection = 1;
   name = grub-mkrescue;
--- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in
@@ -247,6 +247,10 @@
 	fi
 
     cat << EOF
+  if [ "\${grub_platform}" = "efi" ]; then
+    echo "Please press 't' to show the boot menu on this console"
+  fi
+
   set gfxmode=${GRUB_GFXMODE}
   load_video
   insmod gfxterm
--- /dev/null
+++ b/util/grub.d/95_textmode.in
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+cat <<EOF
+if [ "\${grub_platform}" = "efi" ]; then
+  # On EFI systems we can only have graphics *or* serial, so allow the user
+  # to switch between the two
+  hiddenentry 'Text mode' --hotkey 't' {
+    set textmode=true
+    terminal_output console
+  }
+fi
+EOF
