How to automatically assign classes in GRUB?
Hi, I'm not the most expert user, but I've been messing with my latest linux install for a few months. I costumized the look of the GRUB, but whenever the kernel gets updated and the grub.cfg gets regenerated, the classes of two entries do not generate (efi and submenu), leaving the entries with no icons (which are determined by the class of the entry).
How do I make it so they automatically generate, instead of me modifing the .cfg everytime the kernel is updated?
I'm on linux mint, 21.2 Cinnamon.
Scripts that generate
grub.cfg
are located in/etc/grub.d/
. You can edit them to specify classes. In my system (Debian) entries you ask about are added in/etc/grub.d/10_linux
and/etc/grub.d/30_uefi-firmware
.should I just add the class parameter in these files where it is usually supposed to be, and the files even on updates will not be changed and this will work?
These files are not changed on updates.
grub.cfg
will be changed, but it will contain what these scripts write into it, so if you add classes to them, they will appear in newgrub.cfg
.To test that everything works as expected, backup your current
grub.cfg
and runsudo update-grub
.daje, grazie! (thanks!)
I'm not managing to get it to work on the submenu entry, only on the efi one. Don't know why
See if this entry generated by another script in this directory.
there were 2 scripts that semeed related to that: 10_linux_proxy and 35_linux_proxy.
There is a folder called proxified scripts, and inside it there are two files: linux and os-prober
Here is the text in the linux file: https://textdoc.co/V3atnuEvcG4QlPUp
I'm not sure what to do with it
You need to add class to this line:
Insert
${CLASS}
before$menuentry_id_option
:it's not working, also I don't know why when I went in that line I have a \ now, that wasn't there before apparently, before $menuentry:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
(I've tried adding it also in front of ${CLASS}, leaving it only were it is, and removing it from both)
What generates is this, so I think it's from the linux proxy 35:
The linux proxy file has this inside it:
Can you post your grub.cfg?
Here it is: https://textdoc.co/qNyF4iIgsaTo5cZX
It seems too long to copy paste here