# Load partition table and file system modules
insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
insmod ntfs
insmod ntfscomp
insmod exfat
insmod udf

# Use graphics-mode output
insmod all_video
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
    set gfxmode="auto"
    terminal_input console
    terminal_output console
fi

# Enable serial console
if serial --unit=0 --speed=115200; then
    terminal_input --append serial
    terminal_output --append serial
fi

# Search for the ISO volume
if [ -z "${ARCHISO_UUID}" ]; then
    if [ -z "${ARCHISO_HINT}" ]; then
        regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
    fi
    search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}"
    probe --set ARCHISO_UUID --fs-uuid "${root}"
fi

# Set default menu entry
default="Melawy Linux"
timeout=15
timeout_style=menu

# GRUB init tune for accessibility
play 600 988 1 1319 4

# Menu entries

menuentry "Melawy Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' {
    set gfxpayload=keep
    linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=4G copytoram=n quiet splash bgrt_disable add_efi_memmap
    initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img
}

menuentry "Melawy Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' {
    set gfxpayload=keep
    linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=4G copytoram=n quiet splash bgrt_disable add_efi_memmap
    initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img
}

if [ "${grub_platform}" == "efi" ]; then
    if [ "${grub_cpu}" == "x86_64" ]; then
        menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool {
            set gfxpayload=800x600,1024x768
            linux /boot/memtest86+/memtest.efi
        }
        menuentry "UEFI Shell" {
            insmod chain
            chainloader /shellx64.efi
        }
    elif [ "${grub_cpu}" == "i386" ]; then
        menuentry "UEFI Shell" {
            insmod chain
            chainloader /shellia32.efi
        }
    fi

    menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
        fwsetup
    }
fi

menuentry "System restart" --class reboot --class restart {
    echo "System rebooting..."
    reboot
}

menuentry "System shutdown" --class shutdown --class poweroff {
    echo "System shutting down..."
    halt
}
