feat: added minegrub theme
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
@@ -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
|
||||
|
After Width: | Height: | Size: 822 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 549 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 515 B |
|
After Width: | Height: | Size: 1012 B |
|
After Width: | Height: | Size: 515 B |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 540 B |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 552 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 513 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 515 B |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 535 B |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 547 B |
|
After Width: | Height: | Size: 553 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 553 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 546 B |
@@ -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"
|
||||
}
|
||||
|
||||
|
||||