#!/bin/bash ################################################################################ # # reboot-windows # Finds and flags a Windows menuentry in GRUB, and then reboots the system # ################################################################################ ######################################## # Reboot command ######################################## REBOOT_CMD=$(cat <<EOF # Find the ID of the Windows entry in the UEFI boot manager WINDOWS_ENTRY=\$(efibootmgr | grep -Po "Boot.*Windows" | grep -Po "[[:digit:]]+"); # Set BootNext in the UEFI boot manager to the Windows entry #sudo grub2-reboot "\$WINDOWS_ENTRY"; sudo efibootmgr --bootnext "\$WINDOWS_ENTRY"; # Copy grubenv to the OpenSUSE grub EFI folder (/boot/grub2/ is not visible on UEFI installs) #sudo cp /boot/grub2/grubenv /boot/efi/EFI/opensuse/grubenv; # Reboot! sudo reboot; EOF ) ######################################## # Prompt user and execute reboot seq. ######################################## if zenity --question --icon distributor-logo-windows --text="Reboot to Microsoft Windows?" --title "Windows" --default-cancel --no-wrap --timeout=10 then pkexec --disable-internal-agent bash -c "$REBOOT_CMD" fi