Grub主题配置笔记……

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/k_y_z_s/article/details/79363845

  如果你希望调整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是否存在问题。


  1. 你可以尝试在Gnome ThemesGrub Themes 节找到很多直接可用的Grub-themes。如果你对上述定义的Grub-themes有一点兴趣并表示愿意相信我,可以下载它在我 git 上的备份……
  2. 如果你自定义,那就要让它是一个可执行的Grub脚本,还要保证更新Grub配置的脚本grub-mkconfig能调用到它。

猜你喜欢

转载自blog.csdn.net/k_y_z_s/article/details/79363845