GRUB is the default Linux bootloader that works on most systems.
You can find new Grub themes in gnome-look.org & store.kde.org.
To install a new Grub theme open Grub Customizer and go to the appearance tab.

Click the plus symbol next to the theme option and select the archive of the theme you download.
To change the grub theme click on the dropdown menu next to theme and select the theme you want.
Then click save to save your new theme.
You can change your first boot option from Grub Customizer.

click the dropdown menu next to predefined to change your first boot option. or change the order of boot options on the list configuration page.
Plymouth is the fancy startup animations that you see in videos & distros. (please note Plymouth can be buggy on some systems)
Plymouth can only be installed from the AUR.
To install it use, your preferred AUR helper. In this example, we use yay
yay -S plymouth-git
Add the Plymouth hook
Add plymouth to the HOOKS array in mkinitcpio.conf (/etc/mkinitcpio.conf). It must be added after base and udev for it to work:
HOOKS=(base udev plymouth ...)
New Plymouth themes can be found here or here
Copy the theme folders you downloaded to /usr/share/plymouth/themes
list all Plymouth themes installed.
plymouth-set-default-theme -l
set Plymouth theme as default. theme is an example name in this.
plymouth-set-default-theme -R theme
Systemd-boot is a simple UEFI boot manager. It is simple to configure but it can only start EFI executables such as the Linux kernel EFISTUB, UEFI shell, GRUB, or the Windows Boot Manager.
To install the systemd-boot EFI boot manager, first make sure the system has booted in UEFI mode and that UEFI variables are accessible. This can be checked by running the command efivar --list or, if efivar is not installed, do ls /sys/firmware/efi/efivars (if the directory exists, the system is booted in UEFI mode).
esp will be used throughout this page to denote the ESP mountpoint, e.g. /boot or /efi. This assumes that you have chrooted to your system's mount point.
With the ESP mounted to esp, use bootctl to install systemd-boot into the EFI system partition by running:
bootctl install
This will copy the systemd-boot boot loader to the EFI partition: on a x64 architecture system /usr/lib/systemd/boot/efi/systemd-bootx64.efi will be copied to *esp*/EFI/systemd/systemd-bootx64.efi and *esp*/EFI/BOOT/BOOTX64.EFI. It will then set systemd-boot as the default EFI application (default boot entry) loaded by the EFI Boot Manager.
Installing systemd-boot will overwrite any existing
/efi/boot/bootx64.efi, for example Microsoft's version of this file.
Whenever there is a new version of systemd-boot, the boot manager can be optionally reinstalled by the user. This can be performed manually, or the update can be automatically triggered using pacman hooks. The two approaches are described thereafter.
Note: The boot manager is a standalone EFI executable and any version can be used to boot the system (partial updates do not apply, since pacman only installs the systemd-boot installer, not systemd-boot itself). However, new versions may add new features or fix bugs, so it is probably a good idea to update it anyway.
Use bootctl to update systemd-boot:
bootctl update
If the location of the ESP is non-standard (i.e., it is not /efi, /boot, or /boot/efi), you need to explicitly provide it using the --esp-path parameter.
The package systemd-boot-pacman-hookAUR provides a Pacman hook to automate the update process. Installing the package will add a hook which will be executed every time the systemd package is upgraded. Alternatively, to replicate what the systemd-boot-pacman-hook package does without installing it, place the following pacman hook in the /etc/pacman.d/hooks/ directory:
/etc/pacman.d/hooks/100-systemd-boot.hook
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Updating systemd-boot
When = PostTransaction
Exec = /usr/bin/bootctl update
Syslinux is a collection of boot loaders capable of booting from drives, CDs, and over the network via PXE. Some of the supported file systems are FAT, NTFS, Ext2, Ext3, Ext4, XFS, UFS/FFS, and uncompressed single-device Btrfs.
Install the syslinux package using:
sudo pacman -S syslinux
If you use a separate boot partition, make sure that it is mounted. Check with lsblk, if you do not see a /boot mountpoint, mount it before you go any further.
Run syslinux-install_update with flags: -i - install the files, -a - mark the partition active with the boot flag, -m - install the MBR boot code:
syslinux-install_update -i -a -m
Now is the time to edit /boot/syslinux/syslinux.cfg refer to Configuration
Your boot partition, on which you plan to install Syslinux, must contain a FAT, ext2, ext3, ext4, or Btrfs file system. You do not have to install it on the root directory of a file system, e.g., with device /dev/sda1 mounted on /boot. For example, you can install Syslinux in the syslinux subdirectory:
sudo mkdir /boot/syslinux
Copy all .c32 files from /usr/lib/syslinux/bios/ to /boot/syslinux/ if you desire to use any menus or configurations other than a basic boot prompt. Do not symlink them.
sudo cp /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
Now install the bootloader. For FAT, Ext2/3/4, or Btrfs boot partition use extlinux, where the device has been mounted:
sudo extlinux --install /boot/syslinux
Alternatively, for a FAT boot partition use syslinux, where the device is unmounted:
sudo syslinux --directory syslinux --install /dev/sdXY
After this, proceed to install the Syslinux bootstrap code appropriate for the partition table:
mbr.bin will be installed for an MBR partition tablegptmbr.bin will be installed for a GUID partition tableNote:
efi64 denotes x86_64 UEFI systems. For IA32 (32-bit) EFI, replace efi64 with efi32 in the below commands./boot./usr/bin/syslinux-install_update does not support UEFI install.syslinux.cfg for UEFI is same as that of BIOS.Note: In the commands related to UEFI, esp denotes the mountpoint of the EFI system partition aka ESP.
Install the syslinux and efibootmgr packages from the official repositories. Then setup Syslinux in the ESP as follows:
Copy Syslinux files to ESP:
sudo mkdir -p esp/EFI/syslinux
sudo cp -r /usr/lib/syslinux/efi64/* esp/EFI/syslinux
Setup boot entry for Syslinux using efibootmgr:
sudo efibootmgr --create --disk /dev/sdX --part Y --loader /EFI/syslinux/syslinux.efi --label "Syslinux" --verbose
where /dev/sdXY is the partition containing the bootloader.
Create or edit *esp*/EFI/syslinux/syslinux.cfg by following Configuration.
Note:
*esp*/EFI/syslinux/syslinux.cfg, not /boot/syslinux/syslinux.cfg. Files in /boot/syslinux/ are BIOS specific and not related to UEFI Syslinux./EFI/syslinux/syslinux.efi. To work around, place resources at the default EFI location: *esp*/EFI/syslinux/* -> *esp*/EFI/BOOT/* and *esp*/EFI/syslinux/syslinux.efi -> *esp*/EFI/BOOT/bootx64.efisudo nano /boot/syslinux/syslinux.cfg
Your config should look like this, make sure /dev/sdXY points to your root partition
TIMEOUT refers to the time it takes to boot the default OS
UI menu.c32
PROMPT 1
TIMEOUT 10
DEFAULT RebornOS
LABEL RebornOS
LINUX ../vmlinuz-linux
APPEND root=/dev/sdXY rw
INITRD ../initramfs-linux.img
LABEL RebornOSfallback
LINUX ../vmlinuz-linux
APPEND root=/dev/sdXY rw
INITRD ../initramfs-linux-fallback.img
Additionally if you want to add Windows to the boot menu add this where hd0 3 refers to the disk then partition
LABEL windows
MENU LABEL Windows
COM32 chain.c32
APPEND hd0 3