Grub Theming Guide for Silverblue / Ublue

Removing duplicate Grub entries:

https://discussion.fedoraproject.org/t/why-does-grub2-present-twice-double-menuentry-for-each-ostree-entry/73990

sudo grub2-switch-to-blscfg
sudo grub2-mkconfig -o /etc/grub2.cfg

Finding a Grub theme:

https://www.pling.com/browse?cat=109&ord=latest

Place the theme folder in:

/boot/grub2/themes/

Using a Grub theme:

Edit the file

/etc/default/grub

Replace

GRUB_TERMINAL_OUTPUT="console"

with

GRUB_TERMINAL_OUTPUT="gfxterm"

and add

GRUB_THEME="/boot/grub2/themes/[theme]/theme.txt"

The file should look similar to this example:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_TERMINAL_OUTPUT="gfxterm"
GRUB_THEME="/boot/grub2/themes/Sekiro/theme.txt"

Then run:

sudo grub2-mkconfig -o /etc/grub2.cfg

The output should look like this example:

Generating grub configuration file ...
Found theme: /boot/grub2/themes/Sekiro/theme.txt
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
done

Additional Notes

For ultrawide monitors, add the following to the same file as above:
GRUB_GFXMODE=2560x1080

Edit the resolution to match your monitor, and replace the image file in your selected theme folder with a wallpaper of the same resolution, then regenerate the grub config as above.


← View Universal Blue General Documentation

6 Likes

I can only put two links in each post, so the additional resources and docs I would normally start with go in this post and the next.

Resources:

https://fedoraproject.org/wiki/GRUB_2
https://wiki.archlinux.org/title/GRUB

2/3

https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html

3/3

Everything worked out great following your guide to customize the grub menu, there is only one thing that doesn’t work for me, I cannot find a way to give silverblue (in my case bazzite) an icon from the theme.

The two images of the ostree are without an icon in the grub menu entry basically.

The icons work for the other os\custom menu entry in the grub, but not for silverblue\bazzite I guess because is automatically detected and not a custom menuentry.

I tried to give the name to the icon as fedora.png, Fedora.png, bazzite.png

none of them work, do you know how to achive this to have a fully customized grub menu?

Thanks for this guide. It solved for me also double entry in the grub :slight_smile:

Hi. Is there a way to change screen rotation on grub, only on a specific monitor or resolution? On steam deck (and probably handhelds in general), the theme works but is being rotated to the left and stretched, it needs to be set up differently.

It works perfectly on the external monitor, issue is only with the build in one, as it has rotated orientations

Thanks for the guide!

This worked for me, but there is apparently an update to Fedora Silverblue 41 which might change the process for new installs.

Additionally, I had to figure out to use sudo su and then cd-ing and ls-ing in order to verify that I copied the themes correctly. I needed this after I messed up the syntax for sudo cp