0x00 背景
最近重装了一下Deepin v20系统,发现开机时Grub菜单字体变小了,看着很不舒服,就尝试着寻找了下解决方法。
Grub配置文件路径是:/etc/default/grub,所以主要就是修改这个文件。该文件的默认内容为:
# Written by com.deepin.daemon.Grub2DEEPIN_GFXMODE_ADJUSTED=1GRUB_BACKGROUND=/boot/grub/themes/deepin-fallback/background.jpgGRUB_CMDLINE_LINUX_DEFAULT="splash quiet"GRUB_DEFAULT=0GRUB_DISTRIBUTOR="`/usr/bin/lsb_release -d -s 2>/dev/null || echo UOS 20`"GRUB_GFXMODE=3840x2160,1920x1080,1024x768,autoGRUB_THEME=/boot/grub/themes/deepin-fallback/theme.txtGRUB_TIMEOUT=5COPY
修改这个文件后,使用update-grub命令更新Grub配置,然后重启电脑。
0x01 修改GRUB_GFXMODE配置
网上找到的比较多的解决方法是修改GRUB_GFXMODE配置,也就是修改Grub使用的分辨率:GRUB_GFXMODE=1024x768,从而让字变大。不过在我电脑上,只有1024x768这个分辨率能够生效,而且看起来字不仅偏大,背景图片也变模糊了。所以这种方法不算是特别好的解决方法。
0x02 增加GRUB_FONT配置
网上另一种解决方案是先通过grub2-mkfont命令生成较大一些的字体,然后修改GRUB_FONT配置,指向生成的字体文件路径。具体方法如下:
$ sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono36.pf2 --size=36 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttfCOPY
然后增加配置:GRUB_FONT=/boot/grub/fonts/DejaVuSansMono36.pf2。
不过这种方法也没有生效。后来发现是因为当GRUB_FONT与GRUB_THEME同时存在时,会优先使用GRUB_THEME中的配置。
0x03 修改主题文件
Deepin中默认使用的Grub主题文件路径是:/boot/grub/themes/deepin-fallback/theme.txt。该文件文件如下:
#version:17#lang:zh_CN.UTF-8#themeInputDir:/usr/share/dde-api/data/grub-themes/deepin-fallback#head endtitle-text: ""desktop-image: "background.jpg"desktop-color: "#000000"terminal-font: "Unifont Regular 16"terminal-box: "terminal_box_*.png"terminal-left: "0"terminal-top: "0"terminal-width: "100%"terminal-height: "100%"terminal-border: "0"+ boot_menu {left = 15%top = 20%width = 70%height = 60%item_font = "Unifont Regular 16"item_color = "#cccccc"selected_item_color = "#0099ff"item_height = 24item_spacing = 12selected_item_pixmap_style = "select_*.png"scrollbar_thumb = "scrollbar_thumb_*.png"scrollbar_width = 6menu_pixmap_style = "menu_*.png"}+ label {left = 0top = 97%width = 100%align = "center"id = "__timeout__"color = "#99E53E"font = "Unifont Regular 16"text = "在 %d 秒内启动"}+ label {left = 0top = 94%width = 100%align = "center"color = "#99E53E"font = "Unifont Regular 16"text = "使用 ↑ 和 ↓ 键移动选择条,Enter 键确认,E 键编辑启动命令,C 键进入命令行"}COPY
可以看到,主题里使用的是Unifont Regular 16字体,看名字可以知道字体大小是16,在4K分辨率下看起来会比较小。所以只要生成大号的字体替换这里的配置就可以了。
生成大号字体的命令是:
$ sudo grub-mkfont --output=/boot/grub/themes/deepin-fallback/unifont-regular-36.pf2 --size=36 /usr/share/fonts/truetype/unifont/unifont.ttfCOPY
然后将主题文件中的Unifont Regular 16都替换为Unifont Regular 36,并重启电脑。可以看到,字体的确变大了。可以根据实际情况动态修改字体的大小。
0x04 结论
此方法理论上不仅可以用于Deepin系统,其它Linux系统应该也可以适用。
Be the first guy leaving a comment!