Few years ago - it was Fedora thirty something - I created my own grub theme.
I “told Fedora” about it in /etc/default/grub, and I also put few configuration there as timeout for example.
As I was upgrading and rebasing my Silverblue it worked.
2 weeks ago I made fresh Silverblue installation.
But what I found is that from Silverblue 41 there is no /etc/default/grub, and I should put my config in /boot/grub2/user.cfg.
The problem is that this file requires configuration in format like /boot/grub2/user.cfgand I could not find any help/info/manual for it - maybe I was not looking hard enough - and that this configuration for simple things like I could do in /etc/default/grub seams to be harder to grasp.
Luckily I still had had old fedora installation, where all worked, on old disk so I could look into these /boot/grub2/user.cfg and figure out what was added to it in relevance to /etc/default/grub.
Then I added the same entry into /boot/grub2/user.cfg on my new OS and now I have themed grub again ![]()
Here I share it with you so maybe someone will find it useful.
set timeout=16
set timeout_style=menu
set disable_recovery=false
set disable_submenu=true
set gfxmode=1920x1080,auto
load_video
insmod gfxterm
insmod gettext
terminal_output gfxterm
insmod gfxmenu
loadfont ($root)/grub2/themes/candy/1920x1080/QarmicSansFree-P23d.pf2
loadfont ($root)/grub2/themes/candy/1920x1080/unifont-15.1.04.pf2
insmod png
set theme=($root)/grub2/themes/candy/1920x1080/theme.txt
export theme
Another thing is that in old OS in /etc/grub.d/30_uefi-firmware I put
...
CLASS="--class uefi"
...
menuentry '$LABEL' ${CLASS} \$menuentry_id_option 'uefi-firmware' {
to have nice icon for UEFI,
but my new Silverblue installation does not respects that and I had to put
...
menuentry 'UEFI Firmware Settings' --class uefi $menuentry_id_option 'uefi-firmware' {
...
directly into /boot/grub2/grub.cfg to make it works.