ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

3 步完成 Ventoy 主题定制:把默认启动菜单改成自己的样子

3 步完成 Ventoy 主题定制:把默认启动菜单改成自己的样子 3 步完成 Ventoy 主题定制把默认启动菜单改成自己的样子【免费下载链接】VentoyA new bootable USB solution.项目地址: https://gitcode.com/GitHub_Trending/ve/VentoyVentoy 启动后的第一屏是 GRUB2 渲染出的图形菜单。默认主题能用但背景、配色、菜单位置全是别人定的。这篇文章教你用 Ventoy 主题定制把这一屏换成自己的设计做完之后U 盘插到任何机器上开机显示的是你画的背景、你排的菜单、你指定的字体和颜色。先搞懂 Ventoy 的主题体系ventoy.json 和 theme.txt 各管什么Ventoy 的图形界面构建在 GRUB2 的 gfxmenu 之上所以主题文件就是标准的 GRUB2theme.txt格式但 Ventoy 在上面多包了一层配置入口。整个链路上有三个角色先分清再动手后面少走弯路ventoy.json位于 Ventoy 分区根目录的ventoy/ventoy.json是插件总配置。theme节点在这里指定主题文件路径、显示模式等。theme.txtGRUB2 主题格式文件定义背景图、菜单框位置、颜色、字体。同目录的图片资源背景图、9 段式边框图等文件名要和theme.txt里引用的名称完全一致区分大小写。默认主题就放在grub/themes/ventoy/theme.txt仓库里也附了一份可直接参考的示例 theme.txt 和对应的 ventoy.json。建议先打开读一遍下面所有写法都来自这两份文件。第一步在 ventoy.json 里指定主题文件在ventoy/ventoy.json中写入或修改theme节点theme: { file: /ventoy/themes/mytheme/theme.txt, display_mode: GUI }字段说明file主题文件路径。以/开头表示 Ventoy 分区根目录下的绝对路径不以/开头时Ventoy 会自动补成/ventoy/…再查找所以写成themes/mytheme/theme.txt也行。路径必须真实存在否则整段配置被丢弃回落到默认主题。display_modeGUI表示图形模式。改成别的值会走文本菜单图形主题完全不加载——这是主题不生效最常见的隐藏原因之一。同节点下还有gfxmode显式指定分辨率、ventoy_left/ventoy_top/ventoy_color底部 Ventoy 状态行文字的位置与颜色按需要添加不写就用默认值1024x768、5%、95%、蓝色。路径规则来自插件的解析逻辑ventoy_plugin.c先按你写的路径检查文件是否存在存在才导出vtoy_theme环境变量grub.cfg据此加载你的主题否则使用内置的themes/ventoy/theme.txt。第二步最小可用的 theme.txt 与百分比布局新建目录ventoy/themes/mytheme/放入背景图background.png1024x768 的 4:3 图最稳妥再写一份theme.txt。下面是最小可运行版本desktop-image: background.png title-text: Ventoy title-color: #ffffff message-color: #f2f2f2 boot_menu { left 10% width 80% top 30% height 50% item_color #ffffff selected_item_color #f2f2f2 item_height 30 item_spacing 1 scrollbar true scrollbar_width 10 }几个关键点定位用百分比。left、top、width、height都可以写10%这种形式相对当前显示分辨率计算1024x768 和 1920x1080 上都不会出界。想要精调时用混合表达式官方示例里就有left 30%200、top 95%-25这种百分比加减像素的写法。颜色用十六进制。item_color普通菜单项、selected_item_color高亮项、message-color提示信息等#RRGGBB或 GRUB 支持的颜色名都行。desktop-image相对路径相对theme.txt所在目录解析所以背景图、边框图都放同一个目录文件名引用时不要写路径前缀。scrollbar trueISO 数量多时菜单溢出靠滚动条建议保留。改完这一层开机后你看到的就已经是自定义背景 自定义菜单框了。第三步用 VTOY_* 占位符显示动态状态Ventoy 在 GRUB2 的 label 组件里扩展了一批占位符实现在 gui_label.c放进label的text里即可显示实时信息占位符含义什么时候用VTOY_HOTKEY_TIP当前菜单的快捷键提示树状/列表模式文案不同放在底部常驻提示行VTOY_MEM_DISK是否处于 MemDisk 模式调试加载方式时VTOY_ISO_RAW是否以原始镜像方式启动同上VTOY_GRUB2_MODE/VTOY_WIMBOOT_MODE对应启动模式状态需要区分启动链路时VTOY_ISO_UEFI_DRVISO UEFI 驱动加载状态UEFI 问题排查这些占位符只在条件成立时显示对应文字不成立时显示空格不会留出一块难看的残字。用法是套一个hbox容器再放label官方示例的写法theme.txt hbox { left 30% top 95% width 10% height 25 label {text VTOY_HOTKEY_TIP color blue align left} }多个状态行就复制几段hbox用top 95%-25、top 95%-50向上错位排布。除了VTOY_*GRUB2 自带的KEYMAP_LONG、TIMEOUT_NOTIFICATION_SHORT进度条倒计时文案同样可用。进阶9 段式可伸缩图形与滚动条想要菜单有边框、选中项有高亮条、滚动条有滑块不要去做一整张大图用 9-patch九段式切图。命名规律是同一个前缀加方位后缀菜单框menu_*.png→menu_nw.png、menu_n.png、menu_ne.png、menu_e.png、menu_c.png等九张选中条select_c.png一张横条即可selected_item_pixmap_style滚动条滑块slider_n.png/slider_c.png/slider_s.png终端窗口框terminal_box_*.png。theme.txt里用通配符引用整组menu_pixmap_style menu_*.png selected_item_pixmap_style select_*.png scrollbar_thumb slider_*.png terminal-box: terminal_box_*.png为什么有效GRUB2 加载时会把九段式图片自动按菜单实际尺寸拉伸拼接——角块不变形边块平铺。这样同一套图在小屏和 4K 屏上都成立比按某个分辨率画死的整屏图适应性好得多。仓库自带的这组小图每个只有几百字节自己画时照着尺寸做就行。多主题、随机切换与分辨率适配ventoy.json的theme节点还支持三种进阶配置多主题数组file写成字符串数组列出多份 theme.txt 路径全部加载random每次启动从数组里随机取一份。取值boot_second同一秒内不变、boot_day同一天固定、boot_month同一个月固定适合每天换个背景这类玩法resolution_fit: 1结合多主题数组使用按当前显示器实际分辨率自动挑选最匹配的主题。这是官方解决不同分辨率适配的正式手段比在 theme.txt 里做响应式计算更直接。配置多份后菜单里按 F5 打开的诊断菜单会出现主题切换入口debug.cfg 中的 theme select 子菜单可以现场预览每一份主题的效果不用反复重启试错。字体方面theme节点还接受fonts数组指向 U 盘内的.pf2字体文件路径支持/绝对路径或相对/ventoy/菜单里通过item_font、label的font属性引用。想显示中文菜单文字这一步不能省GRUB2 默认字体不含中文字形。主题不生效时的四项排查⚠️ 按命中率从高到低排路径或大小写错误。ventoy.json与theme.txt都是大小写敏感的Theme.txt和theme.txt是两回事file里/开头的路径相对 Ventoy 分区根目录漏写一级目录很常见。JSON 语法错误。多一个逗号、引号没闭合会导致整个ventoy.json解析失败所有插件配置都不生效而不会单独报 theme 错。display_mode不是 GUI。文本模式下 theme 根本不会被加载。theme.txt 里的图片引用对不上。desktop-image或menu_*.png组中缺一张文件对应元素渲染失败。前两项不用猜按 F5 进入诊断菜单 → JSON 检查 → 选 theme 检查对应vt_check_plugin_json命令见 debug.cfgVentoy 会逐条打印每个file是OK还是NOT EXIST、字体路径是否存在、各配置项的取值结果直接读屏幕即可。写在最后整套流程归纳成清单✅ 主题文件放ventoy/themes/名字/背景图、theme.txt、9 段式图同目录✅ventoy/ventoy.json的theme节点写清file和display_mode: GUI✅ 布局用百分比 混合表达式状态行用VTOY_*占位符✅ 改完先用 F5 诊断菜单的 theme 检查确认文件可达再重启看效果✅ 要跨分辨率统一体验用多主题数组 resolution_fit别硬写像素。ventoy.json 配置、theme.txt 写法这两处是日后维护的全部入口把这两份文件用文本编辑器版本化管理改动一目了然。【免费下载链接】VentoyA new bootable USB solution.项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表