=== modified file 'grub-core/kern/term.c' Index: b/grub-core/kern/term.c =================================================================== --- a/grub-core/kern/term.c +++ b/grub-core/kern/term.c @@ -23,6 +23,9 @@ #include #include +grub_uint8_t grub_term_normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR; +grub_uint8_t grub_term_highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR; + struct grub_term_output *grub_term_outputs_disabled; struct grub_term_input *grub_term_inputs_disabled; struct grub_term_output *grub_term_outputs; Index: b/grub-core/normal/color.c =================================================================== --- a/grub-core/normal/color.c +++ b/grub-core/normal/color.c @@ -106,8 +106,6 @@ free_and_return: return result; } -static grub_uint8_t color_normal, color_highlight; - static void set_colors (void) { @@ -116,7 +114,7 @@ set_colors (void) FOR_ACTIVE_TERM_OUTPUTS(term) { /* Reloads terminal `normal' and `highlight' colors. */ - grub_term_setcolor (term, color_normal, color_highlight); + grub_term_setcolor (term, grub_term_normal_color, grub_term_highlight_color); /* Propagates `normal' color to terminal current color. */ grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); @@ -128,7 +126,7 @@ char * grub_env_write_color_normal (struct grub_env_var *var __attribute__ ((unused)), const char *val) { - if (grub_parse_color_name_pair (&color_normal, val)) + if (grub_parse_color_name_pair (&grub_term_normal_color, val)) return NULL; set_colors (); @@ -141,7 +139,7 @@ char * grub_env_write_color_highlight (struct grub_env_var *var __attribute__ ((unused)), const char *val) { - if (grub_parse_color_name_pair (&color_highlight, val)) + if (grub_parse_color_name_pair (&grub_term_highlight_color, val)) return NULL; set_colors (); Index: b/grub-core/normal/main.c =================================================================== --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -539,8 +539,8 @@ GRUB_MOD_INIT(normal) grub_env_export ("color_highlight"); /* Set default color names. */ - grub_env_set ("color_normal", "white/black"); - grub_env_set ("color_highlight", "black/white"); + grub_env_set ("color_normal", "light-gray/black"); + grub_env_set ("color_highlight", "black/light-gray"); for (i = 0; i < ARRAY_SIZE (features); i++) { Index: b/grub-core/term/gfxterm.c =================================================================== --- a/grub-core/term/gfxterm.c +++ b/grub-core/term/gfxterm.c @@ -253,7 +253,7 @@ grub_virtual_screen_setup (unsigned int virtual_screen.standard_color_setting = DEFAULT_STANDARD_COLOR; - virtual_screen.term_color = GRUB_TERM_DEFAULT_NORMAL_COLOR; + virtual_screen.term_color = grub_term_normal_color; set_term_color (virtual_screen.term_color); Index: b/include/grub/term.h =================================================================== --- a/include/grub/term.h +++ b/include/grub/term.h @@ -233,6 +233,9 @@ typedef struct grub_term_output *grub_te #define GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR 0x70 #define GRUB_TERM_DEFAULT_STANDARD_COLOR 0x07 +extern grub_uint8_t EXPORT_VAR(grub_term_normal_color); +extern grub_uint8_t EXPORT_VAR(grub_term_highlight_color); + extern struct grub_term_output *EXPORT_VAR(grub_term_outputs_disabled); extern struct grub_term_input *EXPORT_VAR(grub_term_inputs_disabled); extern struct grub_term_output *EXPORT_VAR(grub_term_outputs); @@ -273,6 +276,9 @@ static inline void grub_term_register_output (const char *name __attribute__ ((unused)), grub_term_output_t term) { + term->normal_color = grub_term_normal_color; + term->highlight_color = grub_term_highlight_color; + if (grub_term_outputs) grub_list_push (GRUB_AS_LIST_P (&grub_term_outputs_disabled), GRUB_AS_LIST (term)); @@ -289,6 +295,9 @@ static inline void grub_term_register_output_inactive (const char *name __attribute__ ((unused)), grub_term_output_t term) { + term->normal_color = grub_term_normal_color; + term->highlight_color = grub_term_highlight_color; + grub_list_push (GRUB_AS_LIST_P (&grub_term_outputs_disabled), GRUB_AS_LIST (term)); } @@ -297,6 +306,9 @@ static inline void grub_term_register_output_active (const char *name __attribute__ ((unused)), grub_term_output_t term) { + term->normal_color = grub_term_normal_color; + term->highlight_color = grub_term_highlight_color; + if (! term->init || term->init (term) == GRUB_ERR_NONE) grub_list_push (GRUB_AS_LIST_P (&grub_term_outputs), GRUB_AS_LIST (term));