Grub ignores grub.cfg when booting
It used to work fine and showed all menu entries including zen, lts, and surface kernels, windows 10, and UEFI settings with a custom theme. But I had to reinstall and regenerate the config so I used sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB which worked fine
Then sudo grub-mkconfig -o /boot/grub/grub.cfg gave me this result
Looked fine so I restarted my system but grub only showed "Arch linux, Arch linux, Windows 10, UEFI settings" as the 4 options and didn't load the theme. First entry is for linux-zen and second is for linux-lts, but this doesn't include the linux-surface kernel that grub found while generating the config
Trying to make any changes to the grub.cfg in /boot/grub/ doesn't make a difference during boot. This config and the theme worked fine earlier but not sure why just reinstalling broke it. I already tried a couple fixes like looking for other grub.cfg files grub might be reading but only one exists. I suspect grub is either reading an internal config (like one embedded during install) or falling back to it's default config instead of using /boot/grub/grub.cfg. For completion, I am running it on a Surface Pro 4 and here's also the /boot/grub/grub.cfg and /etc/default/grub files