[ Content contribution] grub启动菜单主题、字体大小、菜单框大小的调整
Tofloor
poster avatar
AMZ
deepin
2024-04-04 20:57
Author

首先回顾一下grub启动的顺序:

  1. 主板加载efi分区的/boot/grub.efi文件>>
  2. 读取/boot/grub.cfg文件>>
  3. 指向引导boot的文件分区及目录>>
  4. 读取boot所在分区的/boot/grub/grub.cfg>>
  5. 文件中记录了复杂的信息,引导界面需要的元素,如界面像素尺寸、分区格式、主题theme.txt配置文件路径、字体路径、引导菜单项等。这里不做深度解读,主要引出了主题相关。

/boot/grub/grub.cfg文件实际上受控于多个地方的参数采集 通过 sudo nano /etc/default/grub 我们可以看到实际上屏幕分辨率、主题壁纸、主题配置文件的路径是在这里规划好的,所以你想从源头改变存放位置可以来修改这个文件,这些变化最终都会通过sudo update-grub命令生成汇总到/boot/grub/grub.cfg,所以先后要明白。

修改点1:

到此我们到了今天的第一个重点,执行 sudo nano /etc/default/grub 将GRUB_GFXMODE=1920x1080这一条改成你的电脑实际分辨率,这样你的启动界面才能获得清晰的壁纸和字体显示。

修改点2:

改了分辨率启动菜单字体太小怎么办,grub并不能直接设置大小,而是依靠工具生成对应的像素大小的pf2文件,如下

sudo grub-mkfont -v --output=/boot/grub/themes/deepin/HarmonyOS25.pf2 --size=25 /usr/share/fonts/HarmonyOS\ Sans/HarmonyOS_Sans_SC/HarmonyOS_Sans_SC_Black.ttf

注意前半段生成的文件名可以自定义,只是文件名而已,如果你不会使用斜杠转义就不要留空格了,因为最后生成的字体名是HarmonyOS Sans SC Black

中间指定像素尺寸--size=25 1080P的屏幕 25即可 2K的30 4K的50差不多就好看了。

后半段指定源字体的路径,选择一个你喜欢的字体即可。

这里需要注意了虽然文件是这个/boot/grub/themes/deepin/HarmonyOS25.pf2 ,但是我们在主题配置文件中填写的是字体名称HarmonyOS Sans SC Black,这个在生成的时候会有输出,记录下来。

修改点3:

sudo nano /boot/grub/themes/deepin/theme.txt

将里面这两行改成这样

terminal-font: "HarmonyOS Sans SC Black  25"
item\_font = "HarmonyOS Sans SC Black 25"
修改点4:
有些主题会在菜单处生成一个背景框,他如果太小,你放大的字体就会溢出,这里依然调整theme.txt文件以下段落

+boot\_menu {

left = 35%

top = 33%

width = 650                     这里加宽一些,如果最后不居中了可以调整left大小来调试移动

height = 370                    这里加高一些,如果最后不居中了可以调整top大小来调试移动

到这一步,我们需要执行一个终极命令前面做的一切才能生效

sudo update-grub

至此增大主题字体,调整显示效果就做完了。

实际上deepin的grub主题是支持各种分辨率以及中文的,它有一个专门的主题生成工具:/usr/lib/deepin-api/adjust-grub-theme

会根据 /usr/share/dde-api/data/grub-themes/deepin目录中的资源,以及/etc/default/grub中的 GRUB,以及 /etc/default/locale中的 lang,来生成相应分辨率下的深度主题。

问题在于:

一是,安装系统时,没有根据用户的实际分辨率来修改 /etc/default/grub中默认的 GRUB-GFXMODE,这导致工具生成的主题是按照这个默认参数1024x768导出的。

二是,在安装阶段,这个工具执行的时候(猜测),/etc/default/locale还没有按照用户所选语言来修改其内容,仍是默认的 en,导致生成的主题中提示语仍是英文。(主题配置文件的原资源中是有中文提示语的)

微信图片_20230902201555.jpg

Reply Favorite View the author
All Replies
Lwh2008-Equinox
deepin
2024-04-04 22:08
#1

为什么用的是鸿蒙的字体confused

Reply View the author
AMZ
deepin
2024-04-04 22:08
#2
Lwh2008-Equinox

为什么用的是鸿蒙的字体confused

免费

Reply View the author
HighAvaPerCon
deepin
2024-04-04 22:49
#3
为什么不用refind呢
Reply View the author
AMZ
deepin
2024-04-04 22:56
#4
HighAvaPerCon
为什么不用refind呢

用过它做的并不好,其次,grub是系统自带的,便于后续的系统完整性体验

Reply View the author
jjcui8595
deepin
2024-04-04 23:06
#5

学习了

Reply View the author
Tonny
deepin
2024-04-05 09:13
#6
It has been deleted!
AMZ
deepin
2024-04-05 09:37
#7
Tonny It has been deleted!

是啊,这块需要做优化的,实际上对于单系统下一步应该跳过grub选择器,按特定按键再启用菜单界面用于修复系统,这样大点小点就无所谓了

Reply View the author