feat: added minegrub theme

This commit is contained in:
2026-08-03 21:23:38 +02:00
parent 242c4b7566
commit a6e8f4f727
37 changed files with 464 additions and 2 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
# GLIM
# MultiOS-USB-Configs
GLIM with minegrub theme and windows, truenas support
Themes and other configs for https://github.com/Mexit/MultiOS-USB
+316
View File
@@ -0,0 +1,316 @@
# MultiOS-USB main config file
# https://gitlab.com/MultiOS-USB
# https://github.com/Mexit/MultiOS-USB
# Load modules
insmod fat
insmod exfat
insmod ntfs
insmod udf
insmod part_msdos
insmod part_gpt
insmod regexp
insmod font
if [ "${grub_platform}" == "efi" ]; then
# Unload modules
rmmod tpm
wimboot_kernel=linux
wimboot_initrd=initrd
else
wimboot_kernel=linux16
wimboot_initrd=initrd16
fi
export wimboot_kernel wimboot_initrd
regexp -s dev '^(.*),' "$root"
probe --fs-uuid $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"
set pager=1
set iso_dir="/ISOs"
# set theme_path="/MultiOS-USB/themes/MultiOS-USB/theme.txt"
export dev rootuuid imgdevpath iso_dir
# if [ -e "$theme_path" ]; then
# set theme="$theme_path"
# export theme
# fi
#
# if loadfont unicode; then
# if [ "${grub_platform}" == "efi" ]; then
# insmod efi_gop
# else
# insmod vbe
# insmod vga
# fi
#
# set gfxmode="1920x1080;1600x1200;1600x1050;1600x900;1440x900;1366x768;1280x1024;1280x800;1280x720;1024x768;auto"
# set gfxpayload=keep
#
# insmod all_video
# insmod gfxterm
# insmod gfxmenu
# insmod png
# export gfxmode gfxpayload
# terminal_output gfxterm
# fi
## MingeGrub Theme - Start
loadfont /MultiOS-USB/themes/minegrub/Minecraft24.pf2
loadfont /MultiOS-USB/themes/minegrub/Minecraft30.pf2
loadfont /MultiOS-USB/themes/minegrub/Monocraft22.pf2
set theme="/MultiOS-USB/themes/minegrub/theme.txt"
export theme
if [ "${grub_platform}" == "efi" ]; then
insmod efi_gop
else
insmod vbe
insmod vga
fi
set gfxmode="1920x1080;1600x1200;1600x1050;1600x900;1440x900;1366x768;1280x1024;1280x800;1280x720;1024x768;auto"
set gfxpayload=keep
insmod all_video
insmod gfxterm
insmod gfxmenu
insmod png
export gfxmode gfxpayload
terminal_output gfxterm
## MingeGrub Theme END
function find_grub_cfg {
submenu "Detect GRUB config file (grub.cfg) -->" {
grubcfg_found=false
insmod ext2
insmod xfs
insmod zfs
insmod btrfs
insmod jfs
insmod reiserfs
for grubcfg in (*,*)/boot/grub*/grub.cfg (lvm\/*)/boot/grub*/grub.cfg; do
regexp --set=1:grubcfg_device '^\((.*)\)/' "${grubcfg}"
if [ -f "${grubcfg}" ]; then
grubcfg_found=true
menuentry --class=linux "Boot Linux from: ${grubcfg}" "${grubcfg}" "${grubcfg_device}" {
root="(${3})"
configfile "${2}"
}
fi
done
if [ "${grubcfg_found}" != true ]; then
menuentry "GRUB configuration files (grub.cfg) not found..." { false }
fi
}
}
function LOOPBACK {
if [ -e (loop) ]; then
loopback --delete loop
fi
loopback loop "$1"
}
submenu "Auto-detect ISOs/WIMs (Directory: $iso_dir) -->" {
echo -n "Loading configuration files... "
for cfgfile in /MultiOS-USB/config/*/*.cfg /MultiOS-USB/config_priv/*/*.cfg; do
source "$cfgfile"
done
}
if [ "${grub_platform}" == "pc" ]; then
submenu "Tools -->" {
submenu "Detect Windows Boot Manager -->" {
bootmgr_found=false
for bootmgr in (*,*)/bootmgr; do
regexp --set=1:bootmgr_device '^\((.*)\)/' "${bootmgr}"
if [ -f "${bootmgr}" ]; then
bootmgr_found=true
insmod ntldr
menuentry --class=windows "Windows Boot Manager on (${bootmgr_device})" "${bootmgr_device}" {
root="(${2})"
ntldr "(${2})/bootmgr"
}
fi
done
if [ "${bootmgr_found}" != true ]; then
menuentry "Windows Boot Manager not found." { false }
fi
}
# Menu: boot from GRUB config file
find_grub_cfg
file="/MultiOS-USB/tools/mt86plus_*/mt86p_*_x86_64"
if [ -f ${file} ]; then
menuentry "Memtest86+" {
linux16 ${file}
}
fi
menuentry "Boot from 1st Hard Disk" {
set root=(hd1)
chainloader +1
}
menuentry "Boot from 2nd Hard Disk" {
set root=(hd2)
chainloader +1
}
menuentry "Boot from 3rd Hard Disk" {
set root=(hd3)
chainloader +1
}
}
fi
if [ "${grub_platform}" == "efi" ]; then
submenu "EFI Tools -->" {
menuentry "Reboot to UEFI Firmware Setup" {
fwsetup
}
if [ -f ($dev,1)/efi/boot/mmx64.efi ]; then
menuentry --class=efi "Add UEFI key or hash" {
chainloader ($dev,1)/efi/boot/mmx64.efi
}
fi
if [ -f /MultiOS-USB/tools/efitools-*/KeyTool.efi ]; then
menuentry --class=efi "Manage UEFI keys and hashes" {
chainloader /MultiOS-USB/tools/efitools-*/KeyTool.efi
}
fi
submenu "Detect EFI bootloaders -->" {
efi_found=false
for efi in (*,*)/efi/*/*/*.efi (*,*)/efi/*/*.efi (*,*)/efi/*.efi; do
regexp --set=1:efi_device '^\((.*)\)/' "${efi}"
if [ -f "${efi}" ]; then
efi_found=true
if [ ${efi} == (${efi_device})/efi/Microsoft/Boot/bootmgfw.efi ]; then
menuentry --class=efi "Windows Boot Manager on (${efi_device})" "${efi_device}" {
root="(${2})"
chainloader "(${2})/efi/Microsoft/Boot/bootmgfw.efi"
}
else
menuentry --class=efi "${efi}" "${efi_device}" {
root="(${2})"
chainloader "${1}"
}
fi
fi
done
if [ "${efi_found}" != true ]; then
menuentry "No EFI files detected." { false }
fi
}
# Menu: boot from GRUB config file
find_grub_cfg
file="/MultiOS-USB/tools/mt86plus_*/mt86p_*_x86_64"
if [ -f ${file} ]; then
menuentry --class=efi "Memtest86+ EFI" {
chainloader ${file}
}
fi
}
submenu "EFI User Tools -->" {
set found=0
for efifile in /MultiOS-USB/tools/*.efi; do
if [ -f "$efifile" ]; then
set found=1
regexp --set=efiname "/MultiOS-USB/tools/(.*)" "$efifile"
menuentry --class=efi "$efiname" "$efifile" {
chainloader "${2}"
}
fi
done
if [ "$found" = "0" ]; then
menuentry "(!) No .efi files found — place them in /MultiOS-USB/tools/" --class=warning {
echo "No EFI files found in /MultiOS-USB/tools/"
echo "Copy your .efi files to that folder and reboot."
sleep 5
}
fi
}
submenu "Network bootable OS installers (DHCP) -->" {
if net_bootp; then
source /MultiOS-USB/config/grub_netboot/main.cfgnet
else
echo -e "\n\nIf your network card is not detected,"
echo -e "check the BIOS/UEFI settings to see"
echo -e "if PXE/network card booting is enabled.\n"
fi
}
fi
submenu "GRUB2 options -->" {
menuentry "Set terminal output to console" {
terminal_output console
}
menuentry "Set terminal output to gfxterm" {
terminal_output gfxterm
}
menuentry "List devices/partitions" {
ls -l
sleep --interruptible 9999
}
menuentry "Enable GRUB2's LVM support" {
insmod lvm
}
menuentry "Enable GRUB2's RAID support" {
insmod dm_nv
insmod mdraid09_be
insmod mdraid09
insmod mdraid1x
insmod raid5rec
insmod raid6rec
}
menuentry "Enable GRUB2's PATA support (to work around BIOS bugs/limitations)" {
insmod ata
update_paths
}
menuentry "Enable GRUB2's USB support *experimental*" {
insmod ohci
insmod uhci
insmod usbms
update_paths
}
menuentry "Mount encrypted volumes (LUKS and geli)" {
insmod luks
insmod luks2
insmod geli
cryptomount -a
}
menuentry "Enable serial terminal" {
serial
terminal_input --append serial
terminal_output --append serial
}
}
menuentry "Reboot (r)" --hotkey=r --class reboot { reboot }
menuentry "Power Off (p)" --hotkey=p --class shutdown { halt }
+23
View File
@@ -0,0 +1,23 @@
MIT License
Copyright (c) 2022 Lxtharia
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
https://github.com/Lxtharia/minegrub-theme
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 822 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

+123
View File
@@ -0,0 +1,123 @@
# Global
title-text: ""
desktop-image: "background.png"
# Terminal for Console and Options
terminal-border: "20"
terminal-left: "10%"
terminal-top: "10%+23"
terminal-width: "80%"
terminal-height: "80%"
terminal-box: "term_*.png"
terminal-font: "Monocraft Regular 22"
# Text White
+ boot_menu {
# as we don't have any pixmaps here, it gets aligned strangely
# top pixmap is 17px in height
# left pixmap is 6px in width
# the text needs to be 3 pixels above and 3 pixels to the left
left = 50%-297
top = 30%+14
width = 600
height = 70%-94
item_font = "Minecraft Regular 30"
item_color = "#ffffff"
selected_item_color = "#ffffa0"
item_height = 34
item_padding = 0
item_spacing = 38
scrollbar = false
}
+ boot_menu {
left = 50%-300
top = 30%
width = 600
height = 70%-94
item_font = "Minecraft Regular 30"
item_color = "#383838"
selected_item_color = "#3f3f28"
item_height = 34
item_padding = 0
item_spacing = 38
item_pixmap_style = "item_*.png"
selected_item_pixmap_style = "selected_item_*.png"
scrollbar = false
}
+ image {
# width of the static bottom bar image is 744
left = 50%-372
top = 100%-70
file = "static_bar.png"
}
+ image {
# width of the logo image is 1200, but the center of the logo is at x=400
left = 50%-400
top = 0
file = "logo.png"
}
# TEXT
+ label {
left = 6
top = 100%-31
height = 54
width = 200
text = "Minegrub 2.0.0"
font = "Minecraft Regular 30"
color = "white"
}
# SHADOW
+ label {
left = 9
top = 100%-28
height = 54
width = 200
text = "Minegrub 2.0.0"
font = "Minecraft Regular 30"
color = "#3f3f3f"
}
# TEXT
+ label {
id = "__timeout__"
left = 50%
top = 100%-31
height = 24
width = 50%-6
text = "Joining world in %d seconds"
align = "right"
font = "Minecraft Regular 30"
color = "white"
}
# SHADOW
+ label {
id = "__timeout__"
left = 50%+3
top = 100%-28
height = 24
width = 50%-6
text = "Joining world in %d seconds"
align = "right"
font = "Minecraft Regular 30"
color = "#3f3f3f"
}