Changing the GRUB default resolution on Silverblue—what am I missing?

Hi everyone, I have a HiDPI display on my laptop, so naturally GRUB’s UI is unreadably tiny by default on Fedora. But I’m running Silverblue, so /etc/default/grub doesn’t exist, and grub2-mkconfig doesn’t work. I followed the advice in this thread (/etc/default/grub is missing on Silverblue 41 fresh install), which informed me that, since grub2-mkconfig doesn’t work anyway, I can (for now) just directly edit the files in /boot/grub2/. The suggested solution was:

  1. Create file /boot/grub2/user.cfg
  2. Add the following to said file:
set gfxmode="1920x1200,auto"
insmod gfxterm
set gfxpayload=keep
terminal_input gfxterm
terminal_output gfxterm

But when I tried it, nothing happened. Only when I prepended these parameters to grub.cfg itself did the resolution change. Of course, this will stop working if my Silverblue image ever updates the grub config, so I’d prefer to keep it all in a separate file. Is there something I’m missing, like an “include user.cfg” something-or-other or an updating command I’m supposed to run first?

Thanks for your help!

It’s safe for now to keep those config changes in the main config. We may start updating the config at a later point but that should not break the boot and will only require writing those somewhere else.

It looks like those options need to be passed to GRUB early so we would need to add another file that is loaded earlier that people could edit.

I.e. this is a bug that we should fix in bootupd’s handling of the GRUB config. If you can file a bug there that would be great. Thanks. GitHub - coreos/bootupd: Bootloader updater