The Minecraft Grub Theme Trio:
| > Minecraft Main Menu < | Minecraft World Selection Menu | Using both themes together |
|---|
Also check out these other projects:
| Minecraft SDDM Theme by Davi-S | Minecraft Plymouth Theme by nikp123 | Minecraft World Loading KDE Splash by Samsu-F |
|---|
There is also a Spanish translation!
Minegrub
A Grub Theme in the style of Minecraft!
Installation
Note: grub vs grub2
- If you have a
/boot/grub2folder instead of a/boot/grubfolder , you need to adjust the file paths mentioned here and in theminegrub-update.servicefile- Also if you're not sure, run
grub-mkconfig -Vto check if you have grub version 2 (you should have)
Manually
- Clone this repository
git clone https://github.com/Lxtharia/minegrub-theme.git
- (optional) Choose a background
./choose_background.sh # or just copy a custom image to minegrub/background.png
-
If you want to use the update script, copy an arbitrary number of images you would like to use to
minegrub/backgrounds/. You can find some options inbackground_options/but you can also use your own images. -
If you do not want to use the update script or if you always want to use the same background, you can use
./choose_background.shor just copy a custom image tominegrub/background.png -
Copy the folder to your boot partition: (for your interest:
-ruv= recursive, update, verbose)
cd ./minegrub-theme
sudo cp -ruv ./minegrub /boot/grub/themes/
- Open
/etc/default/grubwith your text editor and change/uncomment this line:
GRUB_THEME=/boot/grub/themes/minegrub/theme.txt
- Update your live grub config by running
sudo grub-mkconfig -o /boot/grub/grub.cfg - You're good to go!
- Check out the
Configurationsection if you want to auto-update the splash text, the background and the packages display after every boot
Using the installation script
- Run the installation script as root and at your own risk (It's run as sudo after all)
- This will help you to install the theme, the systemd service and enable the console background
- It also lets you choose a background if you don't want to randomize it
NixOS module (flake)
This is a minimal example
# flake.nix { inputs.minegrub-theme.url = "github:Lxtharia/minegrub-theme"; # ... outputs = {nixpkgs, ...} @ inputs: { nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem { modules = [ ./configuration.nix inputs.minegrub-theme.nixosModules.default ]; }; } } # configuration.nix { pkgs, ... }: { boot.loader.grub = { minegrub-theme = { enable = true; splash = "100% Flakes!"; background = "background_options/1.8 - [Classic Minecraft].png"; boot-options-count = 4; }; # ... }; }
Configuration
Adjusting for a different amount of boot options:
- If you have more or less than 4 boot options, the buttons will overlap with the bottom bar (the one saying "Options" and "Console")
- To move that bar down and fix this, all you need to do is edit this line in the theme.txt:
/boot/grub/themes/minegrub/theme.txt- (You can also edit the file in the cloned repository so you don't overwrite it again when you update the theme at some point (via a
cp -r))
- (You can also edit the file in the cloned repository so you don't overwrite it again when you update the theme at some point (via a
- The formula and some precalculated values (for 2,3,4,5... boot options) are in the
theme.txt, so you should be able to easily change it to the correct value.
Updating splash text, background and "x Packages Installed" text after every boot!
The update_theme.py script chooses a random line from assets/splashes.txt and generates and replaces the logo.png which holds the splash text, as well as updates the amount of packages currently installed. It also randomly chooses a file from backgrounds/ (ignoring hidden files beginning with a dot) as the background image.
- Make sure
fastfetchorneofetchis installed - Make sure Python 3 (or an equivalent) and the Pillow python package are installed
- Install Pillow either with the python-pillow package from the AUR or with
sudo -H pip3 install pillow - It's important to use
sudo -H, because it needs to be available for the root user
- Install Pillow either with the python-pillow package from the AUR or with
- To add new splash texts simply edit
./minegrub/assets/splashes.txtand add them to the file. - Put all backgrounds you want to randomly choose from in
./minegrub/backgrounds/. Hidden files (i.e. filenames beginning with a dot) will be ignored. You can also add your own images. - If you want to get a specific splash and/or background for the next boot, run
python update_theme.py [BACKGROUND_FILE [SPLASH]], e.g.python update_theme.py 'backgrounds/1.15 - [Buzzy Bees].png' 'Splashing!'- Empty string parameters will be replaced by a random choice, e.g.
python update_theme.py '' 'Splashing!'for a random background and the splashSplashing!.
- Empty string parameters will be replaced by a random choice, e.g.
Update splash and "Packages Installed"...
...manually
- Just run
python /boot/grub/themes/minegrub/update_theme.py(from anywhere) after boot using whatever method works for you
...with init-d (SysVinit)
- Just copy the
./minegrub-SysVinit.shunder/etc/init.dasminecraft-grubthen runupdate-rc.d minecraft-grub defaultsas root privileges:
sudo cp -v "./minegrub-SysVinit.sh" "/etc/init.d/minecraft-grub" sudo chmod u+x "/etc/init.d/minecraft-grub" # Just to be sure the permissions are set correctly. sudo update-rc.d minecraft-grub defaults
...with systemd
- Edit
./minegrub-update.serviceto use/boot/grub2/on line 5 if applicable - Copy
./minegrub-update.serviceto/etc/systemd/system - Enable the service:
systemctl enable minegrub-update.service - If it's not updating after rebooting (it won't update on the first reboot because it updates after you boot into your system), check
systemctl status minegrub-update.servicefor any errors (for example if pillow isn't installed in the correct scope)
Setting the console background
When in grub, pressing 'c' opens the grub console.
If you want that console to have a background you can specify GRUB_BACKGROUND=<path> in /etc/defaults/grub
Though this doesn't work if a theme is set, so you first need to change a line in a grub file. This can be done by running this pretty looking sed command:
# Create a backup of the file first cp /etc/grub.d/00_header ./00_header.bak # replace the elif in that line with an fi; if sed --in-place -E 's/(.*)elif(.*"x\$GRUB_BACKGROUND" != x ] && [ -f "\$GRUB_BACKGROUND" ].*)/\1fi; if\2/' /etc/grub.d/00_header
Now you can set
GRUB_BACKGROUND="/boot/grub/themes/minegrub/dirt.png"
And don't forget to regenerate the grub.cfg :)
Notes:
- the
GRUB_TIMEOUT_STYLEin the defaults/grub file should be set tomenu, so it immediately shows the menu (else you would need to press ESC and you dont want that) - I'm no Linux expert, that's why I explain it so thoroughly, for other newbies :>
- i use arch btw
- i hope u like it, cause i sure do lmao
Thanks to
- https://github.com/toboot for giving me this wonderful idea!
- the internet for giving me wisdom lmao (Mainly http://wiki.rosalab.ru/en/index.php/Grub2_theme_tutorial)
- The contributors for contributing and giving me some motivation to improve some little things here and there
- Vanilla Tweaks for some of the backgrounds
Font downloaded from https://www.fontspace.com/minecraft-font-f28180 and used for non commercial use.
