如果你希望调整Grub
默认主题并且没兴趣了解、讨论Grub
主题配置文件细节,你可以尝试从 Gnome Themes 的 Grub Themes 节获取您喜欢的主题后放到合适的位置然后根据需要调整……
下面这些仅仅适合我和那些“希望了解Grub
主题包细节和对Grub
主题进行微小调整的人群”……
!如果您希望在Grub
引导菜单项中能见到您喜欢的OS
图标(就像下面那张Grub
截图一样),您可以自己收集您喜欢的OS
图标文件(尺寸:24x24/32x32/64x64/72x72/88x88/128x128……
,格式:8 bit 的 png
)重命名(os_dist_type.png)后存放到固定位置处(Grub
主题目录下的icons
目录中)。
当然,除了可选的OS
图标,Grub
主题还包含一些其它的东西(主题定义文件)、资源文件(这些东西需要你自己动手搜集1,如果你对自定义充满了兴趣并表示不反对的话)。
一个
Grub
主题包结构类似:
======== dir:/boot/…/grub/themes/books/ =========
├── books.png # Grub 背景图片
├── theme.txt # Grub 主题定义文件,
# 一组 OS 图标(可以仅收集已安装系统的)
├── icons
│ ├── arch.png
│ ├── bsd.png
│ ├── centos.png
│ ├── fedora.png
│ ├── gentoo.png
│ ├── lfs.png
│ ├── linux.png
│ ├── windows.png
├── README
# 可选,样式资源组(这里的文件名需要在主题定义文件被正确引用):
# 一组用于引导菜单的样式
├── boot_menu_c.png
├── ......
├── COPYING.CC-BY-SA-3.0
# 一组用于引导菜单项被选中时的样式
├── select_c.png
├── ............
# 一组用于有滚动条时的样式
├── slider_c.png
├── ......
# 一组用于 Grub 命令解释器的样式
├── terminal_box_c.png
├──......
# 用于其它对象的样式资源组
└── .......
如果你希望自定义Grub
主题,一个格式是纯文本的文件(文件名倒是可以随意,但引用时必须一致)是必须的,它被用来定义Grub
主题样式。
themes.txt
#
#general settings
#message-font: "DejaVu Sans Regular 12"
# message-color: "#fff"
# message-bg-color: "#000"
title-text: ""
# 这里是 Grub 背景图片
desktop-image: "books.png"
# desktop-color: "#000"
# Grub term 样式定义:
# terminal-font: "DejaVu Sans Regular 12"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
terminal-border: "0"
terminal-width: "100%"
terminal-height: "100%"
# 引导菜单样式定义:
+ boot_menu {
#这里的单位是元素实际占据的屏幕大小,可以根据需要调整……
left = 62%
top = 5%
width = 60%
height = 50%
# item_font = "DejaVu Sans Regular 12"
item_color = "#cfccfc"
# selected_item_font = "DejaVu Sans Bold 14"
selected_item_color= "#ffffff"
# icon_height = 32
# icon_width = 32
# 这里是在定义引导项样式
item_height = 32
# item_padding = 12
item_icon_space = 5
item_spacing = 12
# 这里是在定义滚动条样式
scrollbar = true
scrollbar_width = 20
scrollbar_thumb = "slider_*.png"
# menu_pixmap_style = "boot_menu_*.png"
selected_item_pixmap_style = "select_*.png"
}
# 底部帮助栏样式定义:
+ label {
top = 100%-25
left = 35%
width = 30%
height = 20
text = "Chooise A OS ?" # "@KEYMAP_MIDDLE@"
align = "center"
# font = "DejaVu Sans Regular 10"
color = "blue"
}
# 进度条样式定义:
# + progress_bar {
# ......
# }
# 其它样式定义……
# ……
如果你在第一次更改Grub
主题文件后已经更新过了Grub
配置文件,那么之后如果仅仅是对Grub
主题文件作了修改就不再需要更新Grub
配置文件……
更新Grub
配置文件应用Grub
主题:
/etc/default/grub
,/etc/grub.d/40-custom
….还可以是其它的2。
/etc/default/grub
# ……
GRUB_GFXMODE=1024x768x32,auto
GRUB_THEME="/boot/efi/EFI/Arch/grub/themes/books/theme.txt" # 这里,请务必调整为你的 Grub 主题文件正确的路径。
# ……
最后,你还需要更新Grub
配置……
# 以根用户权限运行 Grub 配置生成脚本 grub-mkconfig ,最后的输出路径务必自行调整……
grub-mkconfig -o /boot/efi/EFI/Arch/grub/grub.cfg
!如果您觉得
grub-mkconfig
脚本更新Grub
配置太慢(查找其它的OS
)尝试直接编辑Grub
最终生成的grub.cfg
,用于设置主题的指令类似:
insmod gfxmenu
insmod png
set theme=(hd0,1)/EFI/Arch/grub/themes/books/theme.txt
export theme
在更新Grub
和重新引导系统之前,不要忘了备份旧的Grub
配置文件和使用grub-script-check
来检查grub.cfg
是否存在问题。
- 你可以尝试在
Gnome Themes
的 Grub Themes 节找到很多直接可用的Grub-themes
。如果你对上述定义的Grub-themes
有一点兴趣并表示愿意相信我,可以下载它在我 git 上的备份…… ↩ - 如果你自定义,那就要让它是一个可执行的
Grub
脚本,还要保证更新Grub
配置的脚本grub-mkconfig
能调用到它。 ↩