Rockbox 字体管理 - 中文字体、Unicode、字体包安装
Rockbox 字体的特殊性
和手机/电脑直接读系统字体不同,Rockbox 的字体是预先转换好的位图字体(.fnt 格式)。原因是 Rockbox 要跑在各种各样硬件能力差异巨大的 DAP 上——从 1-bit 单色字符屏的 Archos 到 640×480 彩色屏的 iPod Classic,硬件能力差了好几个数量级。统一用位图字体可以在所有设备上高效运行。
字体文件位置
Rockbox 字体放在 .rockbox/fonts/ 目录下,扩展名是 .fnt。字体按像素高度命名:
12-Nimbus.fnt→ 12 像素高度的 Nimbus 字体16-GNU-Unifont.fnt→ 16 像素高度的 GNU Unifont(包含 Unicode 字符)24-NotoSans.fnt→ 24 像素高度的 Noto Sans
字体文件自带特定尺寸——没有 TrueType 那样的向量缩放。想用不同大小的字体?需要装对应像素高度的 .fnt 文件。
Rockbox Font Pack(官方字体包)
Rockbox 官方提供一个 Rockbox Font Pack——包含几十种常用字体的各个像素尺寸版本,是装 Rockbox 后应该立刻装的东西:
- 下载 Rockbox Font Pack
- 解压到 DAP 根目录 →
.rockbox/fonts/会多出几十个 .fnt 文件 - 解压后不要重命名
.fnt文件
为什么重要:
- 大部分社区主题依赖字体包——主题 zip 里会写「Requires Rockbox Font Pack」,没装主题用不了
- 默认主题用默认字体通常很小或很丑,装了字体包后可以切换更清晰的
- 中文字体也在字体包里
中文字体支持
这是 Rockbox 相比原厂固件的一个大优势——原厂 DAP 固件很多完全没有中文字体,显示中文歌名时会乱码或显示方块。
Rockbox 字体包里包含的中文/多语言字体:
| 字体 | 说明 | 字符覆盖 |
|---|---|---|
| GNU Unifont | 开源 Unicode 覆盖最全的字体 | 基本覆盖中文简体 |
| WenQuanYi Zen Hei | 文泉驿正黑,开源中文黑体 | 简体 + 繁体 + 日韩 |
| Noto Sans CJK | Google Noto Sans 中日韩 | 简体 + 繁体 + 日韩 |
| AR PL UMing | 文鼎明体(开源版) | 繁体为主,简体部分覆盖 |
注意:大字体(24px+)且带 CJK 字符的 .fnt 文件体积可能很大——Noto Sans CJK 24px 的 .fnt 可能 2~5MB。部分老 DAP 的屏幕小内存紧张,大字体可能装不下或加载慢。选合适的像素高度。
字体尺寸选择指南
| DAP 屏幕分辨率 | 推荐字体高度 | 说明 |
|---|---|---|
| 96×96(Sansa Clip Zip) | 12px | 屏幕小,16px 字太大放不下 |
| 128×64(Sansa Clip) | 12px | 横屏但高度只有 64,字不能太大 |
| 160×128(iPod Nano) | 12~16px | |
| 220×176(iRiver H340) | 16px | |
| 320×240(iPod 5G) | 16~19px | |
| 640×480(iPod Classic) | 19~24px | 大屏用大字体 |
切换字体
Settings → Theme Settings → Browse Fonts → 选一个 .fnt 文件
Rockbox 会列出 .rockbox/fonts/ 下所有 .fnt 文件。选中后实时切换。
主题 vs 默认字体
主题配置文件(.cfg)可以指定自己的字体——装了主题后 Rockbox 可能自动切换到主题指定的字体。这是主题设计的一部分:主题开发者搭配特定字体以达到最佳视觉效果。
如果你想在某个主题上用自己喜欢的字体,可以手动覆盖:Settings → Theme Settings → Font → 手动选。大部分主题允许覆盖,不会报错。
自制字体(进阶)
Rockbox 社区提供字体转换工具(convttf / font2bdf),可以把电脑上的 TrueType / OpenType 字体转成 Rockbox .fnt 格式。这意味着你可以用任何电脑字体(只要合法)转成 Rockbox 用:
- 在电脑上安装 convttf 工具(Rockbox 源码仓库里的 tools/ 目录)
- 选定一个 .ttf / .otf 文件
- 指定像素高度和字符集范围
- 生成 .fnt → 放进
.rockbox/fonts/
字体不生效?
常见原因:
- .fnt 文件版本不兼容——Rockbox 4.0 之前和之后的 .fnt 格式有细微变化,老字体可能加载失败
- 字符集不完整——选了一个只含英文字母的 .fnt,切中文就显示方块
- 主题锁定了字体——某些主题配置里强制指定字体,你手动切换会被覆盖。检查
.cfg文件里的ui_font设置
最安全的办法:直接用 Rockbox 官方字体包里的字体——全部经过测试兼容 4.0。