Caution
Before installation on hardware it is recomended to practice in a VM and having a rescue USB stick ready with your Linux distribution. Theme installation is a safe process if done right, but better be safe than sorry.
Tip
If you want to see how the theme looks before you install it, there are some methods to do so in showcase.
-
Add this repo as a flake input.
-
{ inputs, ... }: { boot.loader.grub.theme = let colorsheme = "night"; layout = "teleport"; resolution = "1920x1080"; in inputs.grubshin-bootpact.${colorsheme}.${layout}.${resolution}; }
- Download a release from GitHub.
- If you have not installed themes before, you might have to enable themes in GRUB
- The release is a single zip with all the theme variants inside. Extract it somewhere and copy the variants you like
to
/boot/grub/themes/
variant
.
Note
GRUB is usually installed on a separate partition on your disk. This partition is then usually mounted at /boot
.
GRUB itself may however be located at /boot/grub2
(GRUB v2 is the current version).
It is also possible that you are using a different bootloader such as refind
, systemd-boot
, etc. This theme is
not going to work with those other bootloaders.
- Update the
GRUB_THEME
variable in/etc/default/grub
to point to/boot/grub/themes/
variant
/theme.txt
. - Run
grub-mkconfig -o /boot/grub/grub.cfg
. This will update the config file loaded by GRUB during boot based on the values in/etc/default/grub
.
You can now reboot your system and check out your new theme.
GRUB by default is not configured to use themes. grub-mkconfig
will tell you a theme was found, but GRUB doesnt try to
use it.
Here are the settings you have to replace, and if they are not present in the config then add them in. This is a reference I used to come up with this list: GRUB Manual: Simple configuration, it explains all the options. There is also a YouTube video that helped me to set this up: Broodie Robertson: Try A Grub Theme ...
Add these to your /etc/default/grub
file. It should contain some settings already, each on their own line so just add
these at the end of the file. This file is actually a shell script so whatever is the last assignment to a variable is
its final value.
GRUB_TIMEOUT=5
andGRUB_TIMEOUT_STYLE=menu
are required for you to see the themed bootloader.GRUB_TERMINAL_OUTPUT=gfxterm
makes GRUB use the graphical terminalGRUB_GFXMODE="1920x1080,auto"
. You can set as many resolutions as you want and GRUB will go down the list trying each. The last one should beauto
because it will use whatever your firmware supports. Read the docs for details on this one.
Tip
Set GFX mode to auto
to prevent screen flicker on during boot. To see the default resolution for your firmware,
reboot into GRUB, press c and type videoinfo
.
GRUB_GFXPAYLOAD_LINUX=keep
Makes the linux kernel use the same graphics mode as set inGRUB_GFXMODE
variable.- And of course
GRUB_THEME="/boot/grub/themes/grubshin-bootpact/theme.txt"
Here is a sample of what it should look like:
/etc/default/grub
# Simply add this to the end so you can roll back to previous values
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL_OUTPUT=gfxterm
GRUB_GFXMODE="1920x1080,auto"
GRUB_GFXPAYLOAD_LINUX=keep
# Set what variant you want here
GRUB_THEME="/boot/grub/themes/grubshin-bootpact/theme.txt"
- Update or remove
GRUB_THEME
. - Remove the directories associated with the theme from
/boot/grub/themes
You can file an issue that is related to the theme itself in the issues tab on GitHub.
If you have further questions about installing, create a discussion in the Q/A section.