{"id":15039215,"url":"https://github.com/lxtharia/minegrub-theme","last_synced_at":"2025-10-23T20:32:58.022Z","repository":{"id":64181147,"uuid":"573559229","full_name":"Lxtharia/minegrub-theme","owner":"Lxtharia","description":"A Grub Theme in the style of Minecraft!","archived":false,"fork":false,"pushed_at":"2025-03-21T13:20:59.000Z","size":62348,"stargazers_count":3419,"open_issues_count":5,"forks_count":46,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-10T19:07:08.060Z","etag":null,"topics":["grub-theme","grub-themes","grub2","grub2-theme","grub2-themes","minecraft"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lxtharia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-02T18:57:52.000Z","updated_at":"2025-04-10T18:56:31.000Z","dependencies_parsed_at":"2024-10-01T01:41:25.034Z","dependency_job_id":"69a93a0c-791c-4a3a-b799-7ae7d2aa3673","html_url":"https://github.com/Lxtharia/minegrub-theme","commit_stats":{"total_commits":134,"total_committers":18,"mean_commits":7.444444444444445,"dds":0.3805970149253731,"last_synced_commit":"987408b8d2cbf0a79a15981788d423fc3e54a80f"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lxtharia%2Fminegrub-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lxtharia%2Fminegrub-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lxtharia%2Fminegrub-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lxtharia%2Fminegrub-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lxtharia","download_url":"https://codeload.github.com/Lxtharia/minegrub-theme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254042341,"owners_count":22004901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grub-theme","grub-themes","grub2","grub2-theme","grub2-themes","minecraft"],"created_at":"2024-09-24T20:41:57.135Z","updated_at":"2025-10-23T20:32:58.016Z","avatar_url":"https://github.com/Lxtharia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**The Minecraft Grub Theme Trio:**\n\n| *\u003e Minecraft Main Menu \u003c* | [Minecraft World Selection Menu](https://github.com/Lxtharia/minegrub-world-sel-theme) | [Using both themes together](https://github.com/Lxtharia/double-minegrub-menu) |\n| --- | --- | --- |\n\n**Also check out these other projects:**\n| [Minecraft SDDM Theme](https://github.com/Davi-S/sddm-theme-minesddm) by Davi-S | [Minecraft Plymouth Theme](https://github.com/nikp123/minecraft-plymouth-theme) by nikp123 | [Minecraft World Loading KDE Splash](https://github.com/Samsu-F/minecraftworldloading-kde-splash) by Samsu-F\n| --- | --- | --- |\n\n\nThere is also a [Spanish translation](https://github.com/FeRChImoNdE/minegrub-theme-es)!\n\n# Minegrub\n\nA Grub Theme in the style of Minecraft!\n\n\n![Minegrub Preview \"Screenshot\"](resources/preview_minegrub.png)\n\n# Installation\n\n\u003e ### Note: grub vs grub2\n\u003e - If you have a `/boot/grub2` folder instead of a `/boot/grub` folder , you need to adjust the file paths mentioned here and in the `minegrub-update.service` file\n\u003e - Also if you're not sure, run `grub-mkconfig -V` to check if you have grub version 2 (you should have)\n\n## Manually\n\n- Clone this repository\n```\ngit clone https://github.com/Lxtharia/minegrub-theme.git\n```\n- (optional) Choose a background\n```\n./choose_background.sh  # or just copy a custom image to minegrub/background.png\n```\n  - 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 in `background_options/` but you can also use your own images.\n  - 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.sh` or just copy a custom image to `minegrub/background.png`\n\n- Copy the folder to your boot partition: (for your interest: `-ruv` = recursive, update, verbose)\n```\ncd ./minegrub-theme\nsudo cp -ruv ./minegrub /boot/grub/themes/\n```\n- Open `/etc/default/grub` with your text editor and change/uncomment this line:\n```\nGRUB_THEME=/boot/grub/themes/minegrub/theme.txt\n```\n- Update your live grub config by running\n    ```\n    sudo grub-mkconfig -o /boot/grub/grub.cfg\n    ```\n- You're good to go!\n- Check out the `Configuration` section if you want to auto-update the splash text, the background and the packages display after every boot\n\n## Using the installation script\n- Run the installation script as root and at your own risk (It's run as sudo after all)\n```\nsudo ./install_theme.sh\n```\n- This will help you to install the theme, the systemd service and enable the console background\n- It also lets you choose a background if you don't want to randomize it\n\n---\n\n## NixOS module (flake)\n\n\u003cdetails\u003e\u003csummary\u003eThis is a minimal example\u003c/summary\u003e\n\n```nix\n# flake.nix\n{\n  inputs.minegrub-theme.url = \"github:Lxtharia/minegrub-theme\";\n  # ...\n\n  outputs = {nixpkgs, ...} @ inputs: {\n    nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {\n      modules = [\n        ./configuration.nix\n        inputs.minegrub-theme.nixosModules.default\n      ];\n    };\n  }\n}\n\n# configuration.nix\n{ pkgs, ... }: {\n\n  boot.loader.grub = {\n    minegrub-theme = {\n      enable = true;\n      splash = \"100% Flakes!\";\n      background = \"background_options/1.8  - [Classic Minecraft].png\";\n      boot-options-count = 4;\n    };\n    # ...\n  };\n}\n```\n\u003c/details\u003e\n\n# Configuration\n\n## Adjusting for a different amount of boot options:\n\n- If you have more or less than 4 boot options, the buttons will overlap with the bottom bar (the one saying \"Options\" and \"Console\")\n- To move that bar down and fix this, all you need to do is edit [this line](https://github.com/Lxtharia/minegrub-theme/blob/main/minegrub/theme.txt#L71) in the theme.txt: `/boot/grub/themes/minegrub/theme.txt`\n  - (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`))\n- 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.\n\n## Updating splash text, background and \"x Packages Installed\" text after every boot!\n\nThe `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.\n- Make sure `fastfetch` or `neofetch` is installed\n- Make sure Python 3 (or an equivalent) and the Pillow python package are installed\n  - Install Pillow either with the python-pillow package from the AUR or with\n    `sudo -H pip3 install pillow`\n  - It's important to use `sudo -H`, because it needs to be available for the root user\n- To add new splash texts simply edit `./minegrub/assets/splashes.txt` and add them to the file.\n- 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.\n- 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!'`\n  - Empty string parameters will be replaced by a random choice, e.g. `python update_theme.py '' 'Splashing!'` for a random background and the splash `Splashing!`.\n\n### Update splash and \"Packages Installed\"...\n\n#### ...manually\n\n- Just run `python /boot/grub/themes/minegrub/update_theme.py` (from anywhere) after boot using whatever method works for you\n\n#### ...with init-d (SysVinit)\n\n- Just copy the `./minegrub-SysVinit.sh` under `/etc/init.d` as `minecraft-grub` then run `update-rc.d minecraft-grub defaults` as root privileges:\n```bash\nsudo cp -v \"./minegrub-SysVinit.sh\" \"/etc/init.d/minecraft-grub\"\nsudo chmod u+x \"/etc/init.d/minecraft-grub\" # Just to be sure the permissions are set correctly.\nsudo update-rc.d minecraft-grub defaults\n```\n\n#### ...with systemd\n\n- Edit `./minegrub-update.service` to use `/boot/grub2/` on line 5 if applicable\n- Copy `./minegrub-update.service` to `/etc/systemd/system`\n- Enable the service: `systemctl enable minegrub-update.service`\n- 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.service` for any errors (for example if pillow isn't installed in the correct scope)\n\n## Setting the console background\n\nWhen in grub, pressing 'c' opens the grub console.\nIf you want that console to have a background you can specify `GRUB_BACKGROUND=\u003cpath\u003e` in `/etc/defaults/grub`\n\n**Though this doesn't work if a theme is set**, so you first need to change a line in a grub file.\nThis can be done by running this pretty looking sed command:\n```bash\n# Create a backup of the file first\ncp /etc/grub.d/00_header ./00_header.bak\n# replace the elif in that line with an fi; if\nsed --in-place -E 's/(.*)elif(.*\"x\\$GRUB_BACKGROUND\" != x ] \u0026\u0026 [ -f \"\\$GRUB_BACKGROUND\" ].*)/\\1fi; if\\2/' /etc/grub.d/00_header\n```\nNow you can set \n```\nGRUB_BACKGROUND=\"/boot/grub/themes/minegrub/dirt.png\"\n```\nAnd don't forget to regenerate the `grub.cfg` :)\n\n\n# Notes:\n\n- the `GRUB_TIMEOUT_STYLE` in the defaults/grub file should be set to `menu`, so it immediately shows the menu (else you would need to press ESC and you dont want that)\n- I'm no Linux expert, that's why I explain it so thoroughly, for other newbies :\u003e\n- i use arch btw\n- i hope u like it, cause i sure do lmao\n\n---\n\n### Thanks to\n\n- https://github.com/toboot for giving me this wonderful idea!\n- the internet for giving me wisdom lmao (Mainly http://wiki.rosalab.ru/en/index.php/Grub2_theme_tutorial)\n- The contributors for contributing and giving me some motivation to improve some little things here and there\n- [Vanilla Tweaks](https://vanillatweaks.net) for some of the backgrounds\n\n\nFont downloaded from https://www.fontspace.com/minecraft-font-f28180 and used for non commercial use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxtharia%2Fminegrub-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flxtharia%2Fminegrub-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxtharia%2Fminegrub-theme/lists"}