# Bling up your Fedora grub

After building my first desktop PC and installing both Windows and Fedora 37 I notice something does encourage my eye bleed. One small, and short seen window falls out of the generally slick look.... You guessed it, it's grub.

My first thought was, I just apply some theme and I will be done with it, like I did previously with my Win/Ubuntu or my wife Win/Pop. I was surprised when it didn't work.

I thought to drop it, and move past it, but I couldn't... It was way too glaring issue :D

> Disclaimer: it was tried only on one PC. If your configuration is different enough from mine, you may have different results and may break something, so no guarantees. As all famous developers say: It worked on my machine.

\-

> Before editing anything, make copies

\-

> When you done with editing and want to check the grub use:
> 
> ```bash
> $ sudo grub2-mkconfig -o /etc/grub2-efi.cfg
> ```

Soooo.... my grub....

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296477404/e7069e2e-c9e2-4174-8545-c45489b94023.jpeg align="center")

I went to [www.gnome-looks.org](https://www.gnome-look.org) and searched for a pretty grub theme, and finally downloaded the [stylish](https://www.gnome-look.org/p/1009237) theme by [vinceliuice](https://www.gnome-look.org/u/vinceliuice).

Tried to install it using included installation script. This is the result.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296477404/e7069e2e-c9e2-4174-8545-c45489b94023.jpeg align="center")

As you can see, nothing happened, so I googled a bit and I found out that fedora changed something with grub configurations and old methods no longer work. There were command to update the grub listings, but nothing how to install themes.

A day later, I tried to dig in into installation script and I found out that the installation of the theme happens, just grub regeneration doesn't. So I modified the `install.sh` script:

```bash
  ...
  # Update grub config
  echo -e "Updating grub config..."
  if has_command update-grub; then
    update-grub
  elif has_command grub-mkconfig; then
    grub-mkconfig -o /boot/grub/grub.cfg
  elif has_command grub2-mkconfig; then
    if has_command zypper; then
      grub2-mkconfig -o /boot/grub2/grub.cfg
    elif has_command dnf; then
      # old outdated command
      # grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

      # working command
      grub2-mkconfig -o /etc/grub2-efi.cfg
    fi
  fi
  ...
```

After running it, I got:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296477404/e7069e2e-c9e2-4174-8545-c45489b94023.jpeg align="center")

And what would you think, that was still not doing anything...

After this and some additional frustrations relaxing HalfLife 2 session, I started to google again...

I found one promising setting in `/etc/default/grub`, comment it out:

```bash
# GRUB_TERMINAL_OUTPUT="console"
```

line `GRUB_THEME="/usr/share/grub/themes/Stylish/theme.txt"` should already exist

And what would you know, I have theme now:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296520094/f241b0f6-46c9-447d-847e-88f7a0fcf15b.jpeg align="center")

Still it looks messy, let's enable submenus in `/etc/default/grub`

```bash
GRUB_DISABLE_SUBMENU=false
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296520094/f241b0f6-46c9-447d-847e-88f7a0fcf15b.jpeg align="center")

Hmmm, no submenus... all good apparently grub is trying new things this is why it tries to make it simple and pushes each item to a separate file, this is why `grub.d` generations aren't used to generate Linux entries. Let's not do that, in `/etc/default/grub`:

```bash
GRUB_ENABLE_BLSCFG=false
```

And voila!!!

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680296760742/7923870e-b912-45bf-b9a4-71d6ac4030a7.jpeg align="center")

Perfectly usable theme, which is not cluttered. All other, non often used items still exists in `Advanced option for Fedora`.

Because we only changed config and not generated grub files, that means this look should persist in the future, even after kernel updates.

I might add more advanced shenanigans later to "handle" items order.
