minegrub-world-sel-theme: a GRUB boot menu in the shape of a Minecraft world list
A grub theme in the style of the Minecraft singleplayer (sp) world selection screen!
At a glance
- What is it?
- This project replaces the GRUB boot menu with a theme drawn in the style of the Minecraft singleplayer world selection screen, including per entry icons and the descriptive text under each option. Installing it means copying a theme folder to the boot partition, pointing GRUB_THEME at it and, for some of the touches, patching scripts in /etc/grub.d that the config generator overwrites.
- Who is it for?
- Adopt minegrub-world-sel-theme if you run GRUB on a machine you control and want the boot menu to look like a Minecraft world list, and if you are prepared to edit files under /etc/grub.d that grub-mkconfig regenerates. Do not expect it to configure UEFI entries for you, since those need the separate class and submenu patches.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A boot menu that looks like choosing a saved world
minegrub-world-sel-theme is a GRUB theme by Lxtharia, published under the MIT licence and written primarily as shell and configuration. The premise is a joke that works better than most: instead of styling the boot menu after the Minecraft main menu, it borrows the singleplayer world selection screen, where each operating system in the list reads like a saved world. The author is explicit that this makes more sense than picking your operating system from the main menu, and the theme adds icons next to each entry and a descriptive line of text under every boot option. A preview screenshot at assets/theme-preview.png shows the result. The repository also carries assets/, an install_theme.sh script, a flake.nix with a lock file, an icon-generator/ directory and the theme folder itself, minegrub-world-selection/, which is what you actually copy onto the machine.
GRUB draws the theme from theme.txt and the menuentry class
The mechanism is plain GRUB theming, and understanding it explains most of the installation steps. A GRUB theme is a text file of drawing instructions plus optional images, and you point the bootloader at it with GRUB_THEME in /etc/default/grub. The icons are the more interesting part. GRUB can attach an icon to a boot entry based on the --class properties of a menuentry, and this theme uses that to give each entry its own icon and its own world description. The lookup is a fallback chain: if a menuentry carries the classes arch, gnu-linux, gnu and os, GRUB looks for arch.png first in the theme's icons directory and falls back through gnu-linux.png, gnu.png and os.png. So the same class list gives you a sensible icon for a range of distributions, and a single line in a menu entry is enough to change the picture.
Three installation routes, and the one that edits your system
The project offers an install script, an AUR package, a manual route and a NixOS flake. The script route is two commands:
git clone https://github.com/Lxtharia/minegrub-world-sel-theme.git && cd minegrub-world-sel-theme
sudo ./install_theme.shThe script asks whether you want to apply optional patches. On Arch the package is in the AUR:
yay -S grub-theme-minegrub-world-selection-gitand a local clone of the AUR repository can be built with makepkg -cris. Doing it by hand means copying the theme folder to the boot partition:
sudo cp -ruv ./minegrub-world-selection /boot/grub/themes/The repository notes that on some distributions such as Fedora the path is /boot/grub2/... instead of /boot/grub/..., so the commands need adjusting. You also get to pick the background that matches your screen size from assets/background-scaled/... and copy it to background.png inside the theme folder, which is the one step that needs a human to know their own display resolution.
GRUB_TERMINAL_OUTPUT=gfxterm is the switch that turns it on
After the theme is in place, two lines in /etc/default/grub tell the bootloader to use it:
GRUB_TERMINAL_OUTPUT=gfxterm
GRUB_THEME=/boot/grub/themes/minegrub-world-selection/theme.txtWithout the gfxterm output the bootloader stays on a plain text console and none of the artwork appears. The live configuration then has to be regenerated, with grub-mkconfig on most distributions:
sudo grub-mkconfig -o /boot/grub/grub.cfgand on Fedora the command lives under the grub2 path:
sudo grub2-mkconfig -o /boot/grub2/grub.cfgThis ordering matters and is easy to get wrong: the theme file, the terminal output and the background setting are all read at regeneration time, so editing /etc/default/grub and forgetting to rerun grub-mkconfig leaves you with the old menu and no error message.
Patches to grub.d scripts that get overwritten
Three touches need more than a variable. The first is the console background, which is black by default and can be set with GRUB_BACKGROUND="path/to/bg.png", but only works after changing a condition in /etc/grub.d/00_header so the background is actually loaded. With that done you can point it at the theme's dirt background:
GRUB_BACKGROUND="/boot/grub/themes/minegrub-world-selection/dirt.png"and the documentation insists this line comes before GRUB_THEME=... . The second is the icon on the UEFI boot entry, which needs the class added by hand to the menuentry line in /boot/grub/grub.cfg. Because that file is regenerated, the edit has to be made in /etc/grub.d/30_uefi-firmware, with the entry written as a menuentry carrying the class uefi, so your change survives the next grub-mkconfig run. The third is the same idea for the Advanced options submenu, edited in /etc/grub.d/10_linux by adding a class to the submenu line.
A NixOS module for the same theme, with generated icon text
The flake exposes a NixOS module, so on NixOS the theme is declared in configuration rather than copied by hand. The example configuration enables a minegrub-world-sel option under boot.loader.grub, points a background attribute at a file inside the theme source, and passes a list of custom icons. Each icon entry carries a name used to look up an image, a lineTop and a lineBottom pair that become the two text lines beside the icon, and an imgName. The example builds those strings from distribution facts, so a NixOS entry can show the distribution name, code name and version on the top line and a survival mode style line underneath, with the icon image taken either from a remote repository or from a local file. The module also accepts a customImg option for a locally referenced image. The practical advantage is that the whole setup, including the GRUB_THEME variable, follows a flake update rather than a manual copy onto a partition.
Generating an icon is a manual, screenshot based job
One limitation is worth naming plainly, because it shapes who can contribute. The icon-generator/ directory has its own README, and the procedure it describes is not automated. If the icon for a distribution is missing, the advice is to open Minecraft, build the item, take a screenshot and contribute it. So the set of icons in the theme is limited by whoever has been willing to do that by hand, and a distribution that is not represented falls back to one of the generic images. The same manual character shows up in the background: the assets/background-scaled/ directory has to be matched to your own screen size and copied to background.png, since the theme cannot detect the resolution of the machine it is being installed on. The theme is also purely cosmetic. It changes what the boot menu looks like and nothing about what is booted, and it does not cover the display manager or the boot splash, which is where the related projects in the series take over.
How this differs from the other GRUB and boot themes
The author publishes a small family of related projects, and the difference between them is the screen they imitate and the stage of boot they affect. This theme is the world selection variant, which is why each entry carries a description like a saved world would. The main menu theme in the same series is the plain Minecraft main menu styling, and a third repository combines both themes so they can be used together. Then there are projects aimed at later stages of boot: an SDDM theme for the graphical display manager, a Plymouth theme for the early boot splash, and a KDE splash that imitates the world loading screen. The practical choice is about which moment you want to look like Minecraft and how much of the boot chain you want to cover. A GRUB theme only reaches the bootloader itself, so if the goal is the whole boot experience, the display manager and splash projects extend the same joke further than this one can.
Editorial conclusion
Adopt minegrub-world-sel-theme if you run GRUB on a machine you control and want the boot menu to look like a Minecraft world list, and if you are prepared to edit files under /etc/grub.d that grub-mkconfig regenerates. Do not expect it to configure UEFI entries for you, since those need the separate class and submenu patches. Check first that your /etc/default/grub sets GRUB_TERMINAL_OUTPUT=gfxterm, that the background image you copy matches your screen size, and that your icons exist under the theme's icons directory. The last push was on 2026-10-19 on the dev branch, the only tagged release is v1.0.0 from 2024-11-18, and the licence is MIT.
Frequently asked questions
How do I install the minegrub world selection GRUB theme?
Clone the repository and run the install script with sudo ./install_theme.sh, which also offers the optional patches. Arch users can install the AUR package with yay -S grub-theme-minegrub-world-selection-git, and NixOS users can pull in the flake module instead.
Why does my GRUB theme not show up after installation?
Two things are usually missing. /etc/default/grub needs GRUB_TERMINAL_OUTPUT=gfxterm for the graphics output and a GRUB_THEME line pointing at theme.txt, and the live config has to be regenerated with sudo grub-mkconfig -o /boot/grub/grub.cfg, or sudo grub2-mkconfig -o /boot/grub2/grub.cfg on Fedora.
How do the icons on each boot entry work?
GRUB matches the --class properties of a menuentry against image names in the theme's icons directory. With the classes arch, gnu-linux, gnu and os, GRUB tries arch.png first and falls back through gnu-linux.png, gnu.png and os.png. The class has to be added to the menuentry, and for UEFI and submenu entries that means editing /etc/grub.d/30_uefi-firmware and /etc/grub.d/10_linux.
Can I use the minegrub world selection theme on NixOS?
Yes, the repository ships a flake with a NixOS module. You enable the minegrub-world-sel option under boot.loader.grub, set the background attribute to a path inside the theme source, and pass custom icons with a name, lineTop, lineBottom and imgName for each entry.
What background image should I use for the theme?
The assets/background-scaled/ directory holds backgrounds for different screen sizes, and you copy the one matching your display to background.png inside the minegrub-world-selection folder. The theme cannot detect your resolution, so this is a manual step in the manual installation route.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/lxtharia-minegrub-world-sel-theme)Was this useful?