martes, 24 de marzo de 2020

Cambiar los colores en el menú del gestor de arranque Grub en las distribuciones GNU/Linux

 
Hola amigos del software libre.

En este artículo os mostraré tanto a modificar el color del fondo como el de los caracteres del gestor de arranque Grub de las diferentes distribuciones del S.O. GNU/Linux.


Primero debemos tener claro al arrancar nuestra computadora y una vez terminada la tarea de comprobación del hardware por parte de la BIOS o de la UEFI dependiendo la que tenga nuestra computadora según su edad. Dicho firmware (BIOS o UEFI según el caso), deja paso a que se ejecute el gestor de arranque (GRUB) y el primer archivo que lee acto seguido es "/boot/grub/grub.cfg". Dicho archivo es creado automáticamente y modificado en cada actualización del kernel por el software "update-grub" que a su vez para crearlo, combina el archivo de configuración "/etc/default/grub" y los scripts almacenados en el directorio "/etc/grub.d/".

En este artículo os enseño a modificar directamente el archivo "/boot/grub/grub.cfg", no es lo ideal, ya que, una vez se ejecute en alguna actualización el programa "update-grub" se desharán los cambios que habremos realizado. La modificación la deberíamos realizar en el archivo "/etc/default/grub", pero eso os lo enseñaré en otro artículo.

Avisados quedáis. Sin mas tiempo que perder, voy al lío:

Necesitamos abrir en un editor el archivo "/boot/grub/grub.cfg", personalmente he usado el editor nano, por tanto abriremos un emulador de terminal y escribiremos el siguiente comando:

$ sudo nano /boot/grub/grub.cfg


Una vez tengamos el archivo abierto, buscaremos la declaración de las variables locales: "set menu_color_normal", "set menu_color_highlight" con la combinación de teclado "Ctrl" mas "w":




En la imagen superior podéis ver que en la variable "menu_color _normal" hay asignado el valor "white/black". "white" corresponde al color de los caracteres del menú del interior del rectángulo y "black" corresponde al color de fondo del menú interior del rectángulo. Si no se define la variable "color_normal" que veremos mas adelante, se extiende este valor a los caracteres y el fondo del exterior del rectángulo.

La siguiente variable definida es: "menu_color_highlight" y en este menú está definida como "black/light-gray". El color "black" corresponde al color de los caracteres seleccionados en el menú y el color "light-gray" corresponde al color del fondo del parágrafo seleccionado.

Este es el resultado del menú del gestor de arranque "Grub" con las configuraciones anteriores, que en mi caso viene de serie una vez instalada la distribución Xubuntu, ya sabéis que en Ubuntu viene con un tono magenta:



Podemos añadir una tercera variable que es: "color_normal" en este caso la he introducido yo mismo. La he definido como "red/black", donde red es el color de los caracteres exteriores al recuadro del menú y black es el color del fondo del exterior del rectángulo. Como se aprecia en la siguiente imagen:



Si dejamos (como en la imagen superior) configurado con estos colores el archivo "grub.cfg" y guardamos los cambios, al volver a reiniciar el PC veremos el menú como en la imagen inferior:



Si la analizamos podemos ver como mediante la variable "menu_color _normal=white/blue" se muestran los caracteres del interior del menú de color blanco y el fondo de color azul.
Mediante la variable "menu_color_highlight=yellow/dark-gray" se muestran los caracteres de la selección elegida de color amarillo y el fondo del parágrafo de selección de color gris oscuro.
Y para finalizar con la variable "color_normal=red/black" se asigna el color rojo a los caracteres exteriores del rectángulo de menú y su fondo en negro.

Para finalizar, indicaros que los colores definidos que admite el menú Grub son los de la imagen siguiente:


En la distribución Ubuntu podéis encontraros en el archivo "/boot/grub/grub.cfg" una variable definida que se llama "background" como os muestro en la imagen inferior:


Esta variable deja definido el color del fondo según los modelos de color RGB (Red, Green, Black) y podemos cambiar el fondo a cualquier tonalidad de color, por defecto viene el color magenta (44,0,30) característico de Ubuntu. Si quisiera cambiar a una tonalidad verdosa (0,44,30), lo dejaría como en la imagen siguiente:


Y el resultado en el menú Grub sería el siguiente:



Si queremos ignorar esta variable y jugar con las 3 anteriores del principio de este tutorial solo tenemos que comentar con una almohadilla (#) las tres líneas, como a continuación:


En el caso que queráis instalar una imagen como fondo del Grub, os bastará insertar estas líneas de código que os muestro a continuación indicando la ruta de la imagen:


El código:
insmod png
background_image -m stretch /home/belinux/Imágenes/Ubuntu-Logo.png

Insertadlo antes de la sentencia condicional "if [ "${recordfail}" = 1 ] ; then". Como se aprecia en la imagen superior.

Y para terminar insertad también el siguiente código:


insmod png
if background_image /home/belinux/Imágenes/Ubuntu-Logo.png; then
  true
else
  set menu_color_normal=white/black
  set menu_color_highlight=yellow/light-gray
  set color_normal=red/black
fi

Insertadlo en la posición que os muestra en la imagen superior. Donde anteriormente se ubicaban la declaración de variables "set menu_color_normal", "set menu_color_highlight"

De hecho, esta sentencia condicional lo único que hace es comprobar que la imagen existe en el directorio de la ruta descrita, de lo contrario se mostrará el menú con la configuración de color de los caracteres y fondo anterior. Es una medida de seguridad, por si acaso se elimina o se cambia de lugar la imagen y no nos quedemos sin acceso al Grub por no verlo.

Aunque si lo preferís podéis eliminar el "if else fi" y dejar configurados los caracteres con los colores y fondo que queráis. Mientras la imagen esté en su ruta se mostrará sino se mostrará el fondo del color establecido.

El resultado final del Grub en mi caso es el siguiente:


Un inciso: la imagen que he insertado en el menú del Grub es de formato "png" y para que pueda verse bien debe de respetar la resolución 640x480.

Os recuerdo que el método usado en este artículo es provisional, ya que cada vez que se actualice el GRUB mediante el comando "update-grub" será modificado a su estado anterior. 

Espero os sirva de ayuda y cambiéis el color del menú a vuestro gusto.

Hasta el próximo artículo.
Saludos.



No hay comentarios:

Publicar un comentario

Gracias por participar en este blog.