资讯动态

hekate / Nyx 界面美化实战指南:背景图、启动图标与 `_hue` / `_nobox` 后缀规则详解

发布时间:2026/9/25 3:12:04 来源:尧图企业网站定制
嵌入式固件系统编程【免费下载链接】hekatehekate - A GUI based Nintendo Switch Bootloader项目地址https://gitcode.com/gh_mirrors/he/hekate点击查看免费下载Nyx 是 hekate 图形界面GUI的自定义主题层其视觉效果完全由 SD 卡上bootloader/res/目录中的资源文件驱动一张 1280×720 的 32 位 BMP 背景图加上若干 192×192 的 32 位 BMP 启动图标即可在数分钟内把 Nyx 主页变成专属风格。本文将围绕 nyx/README_RES.md 的官方说明结合仓库源码逐条拆解背景图规格、图标放置方式、_hue.bmp/_nobox.bmp/_hue_nobox.bmp三种后缀的着色与去边框行为以及icon与icon_*_custom.bmp的覆盖优先级让你能安全、准确地制作和部署自己的 Nyx 主题资源。Nyx 主题资源的核心事实入口文档nyx/README_RES.md原文档以下引用简称“原文档”配套模板res/hekate_ipl_template.ini源码实现nyx/nyx_gui/nyx.c背景与默认图标加载、nyx/nyx_gui/frontend/gui.c启动图标解析与按钮绘制适用对象使用 Nyx GUInyx目录构建产物的 hekate 用户以及希望把 SD 卡界面定制成一致风格的主题作者。背景图background.bmp1280×720、32 位、Alpha 必需文件位置与命名原文档明确背景图必须放在bootloader/res/background.bmp对应源码中Nyx 在nyx_load_bg_icons()内通过hekate_bg bmp_to_lvimg_obj(bootloader/res/background.bmp);加载该文件nyx/nyx_gui/nyx.c。也就是说主题作者把这张图放到该路径后Nyx 启动主页Home Tab就会以它作为背景底图。硬性规格1280×720 且为 32 位 BMP分辨率必须是 1280×720。Nyx 的屏幕坐标系与按钮布局按 1280×720 设计参见 nyx/nyx_gui/frontend/gui.c 中btn_width 200; btn_height 200;等按钮尺寸与 592 像素高度的滚动区lv_page_set_scrl_height(parent, 592);因此尺寸不符会被直接拉伸或裁切产生错位。位深必须为 32 位 BMP每像素含 8 位 Alpha。原文档特别提醒渲染时 Alpha 混合alpha blending是生效的因此如果需要实底背景Alpha 通道值必须设为0xFF完全不透明否则背景会呈现半透明叠加在默认界面上。原文档还提到“有网站可以生成正确的 BMP”。制作时可用常见图像软件导出“32-bit BMP / ARGB”格式并确认导出选项包含 Alpha 通道。注意这与 Bootlogo 的规格不同——Bootlogo 的说明见 README_BOOTLOGO.md它允许任意尺寸最大 720×1280、自动居中且只支持 32 位 ARGB BMP背景图则是严格的 1280×720。背景加载的源码级佐证在 nyx/nyx_gui/nyx.c 中nyx_load_bg_icons()依次完成三件事若存在bootloader/res/icon_switch_custom.bmp则加载之否则加载bootloader/res/icon_switch.bmpnyx/nyx_gui/nyx.c若存在bootloader/res/icon_payload_custom.bmp则加载之否则加载bootloader/res/icon_payload.bmpnyx/nyx_gui/nyx.c加载bootloader/res/background.bmpnyx/nyx_gui/nyx.c。可见这三类资源都集中在bootloader/res/下命名固定替换即生效无需编译任何代码。启动图标192×192、32 位 BMP、自由使用透明度图标规格原文档给出支持的图标为192×192 的 32 位 BMP并且可以“随意使用透明度”与按钮背景做漂亮的叠加效果。之所以强调“32 位 透明度”是因为 Nyx 会把这个 BMP 作为按钮上的lv_img对象渲染Alpha 通道直接参与混合参见 nyx/nyx_gui/frontend/gui.c 中lv_img_create/lv_img_set_src(img, bmp)的用法。如果图标是纯白且带透明通道的“线稿”还能配合下面的_hue机制被整体着色。图标的两种放置方式原文档给出两种方案按启动项名字命名在bootloader/res/下放置boot entry name.bmp例如启动项名为CFW时放bootloader/res/CFW.bmp。icon键指定路径推荐在启动项的[section]内写icon{sd path}例如iconbootloader/res/my_icon.bmp。源码中的实际解析顺序如下nyx/nyx_gui/frontend/gui.c解析bootloader/ini下的配置文件ini_parse(ini_sections, bootloader/ini, true)遍历每个 boot entry 小节查找icon键nyx/nyx_gui/frontend/gui.c若没有icon键则依次尝试bootloader/res/entry.bmpbootloader/res/entry_hue_nobox.bmpbootloader/res/entry_hue.bmpbootloader/res/entry_nobox.bmp见 nyx/nyx_gui/frontend/gui.c若有icon键直接加载该路径并按文件名后缀判断是否着色 / 去边框见下节若以上都没有且该条目带payload键则回退到默认的 payload 图标icon_payload否则回退到默认的 Switch 图标icon_switch且当不存在*_custom.bmp时默认图标会被着色nyx/nyx_gui/frontend/gui.c。模板文件中也明确写了这一风格化键的用途res/hekate_ipl_template.ini 中注释“like logopath key which is for bootlogo and icon key for Nyx icon.”。注意配置文件的语法约束也一并继承不要在键名前后留空格、不要用#注释用;否则条目会解析失败res/hekate_ipl_template.ini。三种后缀魔法_hue、_nobox、_hue_nobox这是原文档的核心“玩法”源码给出了精确判定逻辑。_hue.bmp按主题色自动着色原文档图标名以_hue.bmp结尾时图标会被着色colorized这只有在“白色布局 透明通道”的图标上效果才好看。源码判定nyx/nyx_gui/frontend/gui.cif (bmp strlen(icon_path) 8 !memcmp(icon_path strlen(icon_path) - 8, _hue, 4)) img_colorize true;着色在渲染层通过img_style实现当img_colorize为真时会调用lv_img_set_style(img, img_style);nyx/nyx_gui/frontend/gui.c。也就是说白色图形区域会被替换为当前主题/按钮的主色透明区域保持透明——所以白底线稿能直接融入任意配色。_nobox.bmp去掉按钮底框原文档使用_nobox.bmp时按钮背景被移除适合追求特定视觉风格的主题。源码判定nyx/nyx_gui/frontend/gui.cif (bmp strlen(icon_path) 10 !memcmp(icon_path strlen(icon_path) - 10, _nobox, 6)) img_noborder true;当img_noborder为真时按钮尺寸由图标尺寸推导宽高 bmp-header.w 4超过 200 则截断为 200并使用无边框样式btn_home_noborder_rel渲染nyx/nyx_gui/frontend/gui.c。_hue_nobox.bmp着色 去边框组合原文档两种效果可组合即文件名以_hue_nobox.bmp结尾。源码优先判定组合nyx/nyx_gui/frontend/gui.cif (bmp strlen(icon_path) 14 !memcmp(icon_path strlen(icon_path) - 14, _hue_nobox, 10)) { img_colorize true; img_noborder true; }注意组合判断在前因此_hue_nobox不会被误拆成“只有_hue”或“只有_nobox”。后缀规则对两种放置方式都生效原文档虽然没有逐条展开但从源码可以看到后缀判断在icon路径分支内nyx/nyx_gui/frontend/gui.c而“按启动项名字命名”的分支也会尝试entry_hue_nobox.bmp、entry_hue.bmp、entry_nobox.bmp三个候选nyx/nyx_gui/frontend/gui.c。所以两种方式都能用后缀推荐优先使用icon指定路径因为它在文件名上更自由可放在 SD 任意位置且语义更明确。默认图标替换icon_switch_custom.bmp与icon_payload_custom.bmp原文档最后一段说明默认系统图标icon_switch.bmp与icon_payload.bmp可被替换如果存在icon_switch_custom.bmp或icon_payload_custom.bmp则加载自定义版本。源码佐证nyx/nyx_gui/nyx.cif (!f_stat(bootloader/res/icon_switch_custom.bmp, NULL)) icon_switch bmp_to_lvimg_obj(bootloader/res/icon_switch_custom.bmp); else icon_switch bmp_to_lvimg_obj(bootloader/res/icon_switch.bmp); if (!f_stat(bootloader/res/icon_payload_custom.bmp, NULL)) icon_payload bmp_to_lvimg_obj(bootloader/res/icon_payload_custom.bmp); else icon_payload bmp_to_lvimg_obj(bootloader/res/icon_payload.bmp);几点实战细节自定义版本存在时该图标默认不做着色只有当icon_sw_custom/icon_pl_custom为假即未加载到 custom 版本时才会走img_colorizenyx/nyx_gui/frontend/gui.c 与 nyx/nyx_gui/frontend/gui.c。也就是说想用默认图标配色就放白底透明线稿的icon_switch.bmp/icon_payload.bmp想用自己定义的多彩图标就放icon_*_custom.bmp。所有默认与自定义图标都应在bootloader/res/目录下规格同为 192×192 32 位 BMP。配置文件中的icon完整示例结合 res/hekate_ipl_template.ini 的格式约定一个可直接套用的启动项示例[CFW SysNAND] payloadbootloader/payloads/reboot_payload.bin iconbootloader/res/cfw_hue_nobox.bmp logopathbootloader/bootlogo_cfw.bmp说明iconbootloader/res/cfw_hue_nobox.bmp指定图标路径且因文件名以_hue_nobox结尾同时启用着色与去边框logopath为可选的启动 logo见 README_BOOTLOGO.md 的加载顺序先logopath缺失/格式错误再回退bootloader/bootlogo.bmp最后回退默认 hekate logo键名前后不要留空格条目内不要用#注释以免解析失败res/hekate_ipl_template.ini。若想让图标默认着色但不显示按钮底框也可直接放bootloader/res/entry_name_hue_nobox.bmp无需写icon键——源码会按命名自动探测nyx/nyx_gui/frontend/gui.c。排查清单与注意事项背景不显示确认路径为bootloader/res/background.bmp且是 1280×720、32 位含 Alpha 的 BMP若导出成了 24 位 RGBAlpha 通道丢失表现会异常。背景偏透明32 位 BMP 的 Alpha 通道未填满需要将 Alpha 设为0xFF以获得实底。图标没生效检查文件名是否与启动项名完全一致大小写敏感或icon路径是否可访问SD 卡挂载失败时会直接提示错误参见 nyx/nyx_gui/nyx.c 的错误分支。着色没生效确认文件名以_hue、_hue_nobox结尾注意_hue判定要求文件名长度 8_hue_nobox要求 14且图标是白底透明线稿。按钮框还在_nobox只对单个图标生效若混用了自定义背景参考 nyx/nyx_gui/frontend/gui.c 中被注释掉的按钮透明逻辑可知当前版本下_nobox是控制按钮底框的最直接方式。修改后生效无需重新编译 hekate/Nyx重启进入 Nyx 即重新加载bootloader/res/下的资源。结语从 nyx/README_RES.md 出发结合 nyx/nyx_gui/nyx.c 与 nyx/nyx_gui/frontend/gui.c 的源码逻辑可以确认 Nyx 的定制体系非常“文件驱动”背景图、默认图标、自定义图标与按条目命名的图标全部从bootloader/res/读取icon键提供最灵活的路径指定方式_hue/_nobox/_hue_nobox三种后缀则精确控制着色与按钮底框。掌握这套规则后制作一套风格统一、可复用的 Nyx 主题只需要准备好三样东西一张 1280×720 的 ARGB 背景图、若干 192×192 的 ARGB 图标其中可着色的做白底透明线稿以及一条简洁的bootloader/hekate_ipl.ini配置。赞分享嵌入式固件系统编程【免费下载链接】hekatehekate - A GUI based Nintendo Switch Bootloader项目地址https://gitcode.com/gh_mirrors/he/hekate点击查看免费下载相关推荐hekate背景图片设置打造独特的引导界面视觉效果hekate背景图片设置打造独特的引导界面视觉效果 hekate作为一款基于GUI的Nintendo Switch引导程序Bootloader允许用户自嵌入式固件系统编程hekate 引导加载器配置完全指南hekate_ipl.ini 启动项、Payload 存储与 Nyx 界面详解hekate 引导加载器配置完全指南hekate_ipl.ini 启动项、Payload 存储与 Nyx 界面详解 hekate 是一款基于图形界面的 Nin嵌入式固件系统编程Hekate引导选项图标定制完全指南打造个性化Switch启动界面Hekate引导选项图标定制完全指南打造个性化Switch启动界面 想要让你的Nintendo Switch启动界面与众不同吗Hekate作为一款基于GUI嵌入式固件系统编程上一篇告别缓存困扰Chromeless clearCache/clearStorage 实战指南下一篇httpbin容器网络配置Bridge与Host模式对比创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑