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.

  • bizdelnick@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    11 months ago

    You need to add class to this line:

    echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' $menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
    

    Insert ${CLASS} before $menuentry_id_option:

    echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' ${CLASS} $menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
    
    • RossoErcole@kbin.socialOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      11 months ago

      What generates is this, so I think it’s from the linux proxy 35:

      ### BEGIN /etc/grub.d/35_linux_proxy ###
      submenu "Advanced Options"{
      menuentry "Ubuntu, with Linux 5.15.0-91-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-91-generic-advanced-9e121508-86c8-407a-803d-9521d13f0be9' {
      		recordfail
      	savedefault
      		load_video
      		gfxmode $linux_gfx_mode
      		insmod gzio
      		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
      		insmod part_gpt
      		insmod ext2
      		search --no-floppy --fs-uuid --set=root 9e121508-86c8-407a-803d-9521d13f0be9
      		echo	'Loading Linux 5.15.0-91-generic ...'
      		linux	/boot/vmlinuz-5.15.0-91-generic root=UUID=9e121508-86c8-407a-803d-9521d13f0be9 ro  
      		echo	'Loading initial ramdisk ...'
      		initrd	/boot/initrd.img-5.15.0-91-generic
      }
      
      ...more entries here
      
      
      • RossoErcole@kbin.socialOP
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        11 months ago

        The linux proxy file has this inside it:

        #!/bin/sh
        #THIS IS A GRUB PROXY SCRIPT
        '/etc/grub.d/proxifiedScripts/linux' | /etc/grub.d/bin/grubcfg_proxy "+'SUBMENU' as 'Advanced Options'{+'Advanced options for Ubuntu'/*, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-75-generic'~28ff24c064536ab0cd3a1bad9f456e69~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-75-generic (recovery mode)'~712228d18fab4e59226cce8b4f0d3d91~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-73-generic'~f31b2a265d0dfef1fd439595ac77a493~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-73-generic (recovery mode)'~303762cfd1fb902e0cab98046932d096~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-72-generic'~b5308959171659a00cb9ad96851ff6a6~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-72-generic (recovery mode)'~30bf9c9d00d0afd9a6bbd4056b36d94e~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-56-generic'~a76a35ca20f2ed58db39dc7b60a1f7a6~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-56-generic (recovery mode)'~7e2e93487d695fdce68a6355544c0cee~}
        -*
        -#text
        -'Ubuntu'~ff8d1852fd072e04e5a89b38002b354a~
        "
        
        
    • RossoErcole@kbin.socialOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      11 months ago

      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)