>>102801724
Limine isn't complicated if you read the docs but because it doesn't have a grub-mkconfig script it needs "so much more work".
Actually I just wrote a simple script to do just that:
#!/bin/dash
cd /boot || exit 1
cat <<EOF
timeout: 5
EOF
for f in vmlinuz*
do
case "${f}" in
*.old)
continue
;;
esac
echo "${f}"
done | sort -V -r | while read -r k
do
[ -e /boot/"$k" ] || continue
cat <<EOF
/Gentoo GNU/Linux, with Linux ${k##vmlinuz-}
protocol: linux
kernel_path: boot():/boot/${k}
kernel_cmdline: root=PARTUUID=80f49af4-02 ro i915.modeset=1 raid=noautodetect sysctl.net.core.default_qdisc=fq_codel init=/sbin/openrc-init
module_path: boot():/boot/intel-uc.img
module_path: boot():/boot/early_ucode.cpio
EOF
done
if [ "$(id -u)" -eq 0 ]
then
limine enroll-config --reset /boot/limine-bios.sys
limine enroll-config /boot/limine-bios.sys $(cksum -a blake2b --untagged /boot/limine.conf | awk '{print $1}')
fi
Which outputs boot entries for all my kernels like this:
$ /boot/gen-limine | head
timeout: 5
/Gentoo GNU/Linux, with Linux 6.11.3-zen1
protocol: linux
kernel_path: boot():/boot/vmlinuz-6.11.3-zen1
kernel_cmdline: root=PARTUUID=80f49af4-02 ro i915.modeset=1 raid=noautodetect sysctl.net.core.default_qdisc=fq_codel init=/sbin/openrc-init
module_path: boot():/boot/intel-uc.img
module_path: boot():/boot/early_ucode.cpio
/Gentoo GNU/Linux, with Linux 6.11.3-gentoo-dist