DEV Community

Cover image for 🖥️ How to customize GRUB in Ubuntu with visual themes
Oscar Ruelas
Oscar Ruelas

Posted on

🖥️ How to customize GRUB in Ubuntu with visual themes

Tired of the boring black Linux boot menu?

Give GRUB a new life with an attractive visual theme.

In this step-by-step guide I show you how to install and customize a theme in Ubuntu. Plus, you'll see how to add custom icons and shutdown or reboot entries directly from GRUB.


1. Choosing and downloading a theme for GRUB

We are going to use GNOME-LOOK.ORG, a platform where you can find hundreds of GRUB themes.

In this case I am going to use one called Elegant Mojave, which has a modern and clean style.

Mojave Grub theme

Once on the theme page, look for the download button.

Some themes offer different resolutions (Full HD, 2K, 4K), download the one that matches your screen.

In Mojave, all resolutions are included inside the zipped file, so you can use the same one for any resolution.

GRUB instructions


2. Extract the theme file

Open the terminal and unzip the .tar.xz file you downloaded. First, go to the downloads folder:

cd ~/Downloads
Enter fullscreen mode Exit fullscreen mode

Install tar if you don't have it:

sudo apt install xz-utils
Enter fullscreen mode Exit fullscreen mode

Unzip the file:

tar -xf [downloaded theme].tar.xz
Enter fullscreen mode Exit fullscreen mode

You can also rename the folder with a shorter name for convenience:

cd [extracted theme folder]
cd [theme version folder]
# Run ls to see the full name of the folder.
mv "original name of the theme" mojave
Enter fullscreen mode Exit fullscreen mode

Terminal demo


3. Move the theme to the GRUB folder.

Let's place the theme in the path GRUB expects:

# Create the themes folder
sudo mkdir -p /boot/grub/themes
sudo mv [theme name] /boot/grub/themes/
Enter fullscreen mode Exit fullscreen mode

4. Activate the theme in GRUB configuration

Now we edit the main GRUB configuration file:

sudo nano /etc/default/grub
Enter fullscreen mode Exit fullscreen mode

Add the following line to the end of the file (replace [theme name] with your own):

GRUB_THEME=/boot/grub/themes/[theme name]/theme.txt
Enter fullscreen mode Exit fullscreen mode

Save the changes (Ctrl + O → Enter) and close the editor (Ctrl + X).

Finally, update GRUB to apply the new theme:

sudo update-grub
Enter fullscreen mode Exit fullscreen mode

Done! Your new theme should already be active at the next reboot.

GRUB config file

5. Custom icons and advanced entries

If you use dual boot, some entries (like "Advanced Options" or UEFI) may not have icons. Let's solve it.

View available icons in the theme

Open the theme icons folder to see which ones are available (replace [theme] with the name of your theme):

cd /boot/grub/themes/[theme]/icons
xdg-open .
Enter fullscreen mode Exit fullscreen mode

Icons directory

For example, in my case I'm going to use the icon recovery.png.

Add custom icons to "Advanced Options".

Let's edit the script that generates the Linux entries:

sudo nano /etc/grub.d/10_linux
Enter fullscreen mode Exit fullscreen mode

Near the end of the file, look for the line where the submenu classes are defined (look for the part where it says "Advanced options") and add the name of the icon you want to use:

--class recovery
Enter fullscreen mode Exit fullscreen mode

It should look something like this.

custom class

Save the changes (Ctrl + O → Enter) and close the editor (Ctrl + X).

Creating shortcuts to shutdown and reboot from GRUB

Now we are going to create custom entries to shutdown and reboot the computer directly from GRUB.

Edit the file:

sudo nano /etc/grub.d/40_custom
Enter fullscreen mode Exit fullscreen mode

And add the following entries:

menuentry "System shutdown" --class shutdown {
halt
}
menuentry "System reboot" --class restart {
reboot
}
Enter fullscreen mode Exit fullscreen mode

ℹ️Make sure that the shutdown.png and restart.png files are located inside the /icons folder of the theme.

custom entries

Want to experiment without risk?

Try the whole process in a virtual machine like VirtualBox or VMware. This way you avoid possible errors on your main system while you learn.


✅ Conclusion.

With a few commands and some customization, you can turn that flat GRUB into a visually appealing and functional boot menu.

Not only does it improve aesthetics, you can also quickly access common tasks like shutting down or rebooting.

💬 Did you like the tutorial?

Do you want more guides like this to customize your Linux system?

Leave a comment or share this post! 😉

Top comments (0)