f9d715157f23e10a0010e4fc1638ee2d4f8eab97
kindle-dash
一个面向 Kindle Voyage 的低功耗电子墨水仪表盘项目。
当前仓库把整条链路都放在一起:
calendar/:在电脑上生成背景图、主题包和前端预览dash/:运行在 Kindle 上,负责拉图、渲染时钟、休眠唤醒、主题切换scripts/:同步、抓图、SSH 恢复等运维脚本bootstrap-new-kindle.sh:新机预置与 SSH 打通后的自动化入口snapshot.sh:同步主题、切换主题、抓取 Kindle 实机画面的统一入口
当前状态
simple/default等主题已经接入当前运行链路- Kindle 侧采用“低频背景 + 本机时钟重绘”的分层渲染方案
- 新机 bootstrap 方案已实现
- 新机 bootstrap 当前仍是“方案已实现,真机恢复出厂闭环未验证”
launch-from-kual.sh与setsid脱离方案已经落地到代码- 主题入口当前只保留在
KUAL;运行态双翻页键菜单与右下角长按默认关闭 - 但
KUAL -> Dashboard与Dashboard -> 原生 UI/KUAL的边界切换在Kindle Voyage 5.13.6上仍不稳定
项目目标
这个仓库不是单纯做一个网页,而是把下面几件事收成一套:
- 在电脑上生成适合 Kindle 分辨率的背景图和主题资源
- 把这些资源同步到已越狱的 Kindle
- 让 Kindle 在低功耗模式下周期性刷新背景
- 在设备本机按分钟重绘时钟,不依赖网络
- 提供主题切换、实机截图、SSH 恢复和新机 bootstrap 工具
架构概览
1. 前端层 calendar/
作用:
- 使用 Vue 生成 Kindle 仪表盘布局
- 导出
kindlebg.png - 导出多主题背景包和
themes.json - 预览不同主题与方向
关键文件:
2. 设备运行层 dash/
作用:
- 在 Kindle 上拉取或读取背景图
- 根据调度决定刷新还是休眠
- 在本机用 Lua + FBInk 渲染时钟
- 切换主题、维护运行时主题状态
- 在需要时拉起主题菜单服务
关键文件:
3. 运维层 scripts/
作用:
- 把当前 runtime 和主题包同步到 Kindle
- 抓取 Kindle 实机屏幕
- 恢复 Kindle 侧 SSH
- 协助 USBNetwork 调试
关键入口:
目录结构
kindle-dash/
├── assets/ 前端静态资源
├── bootstrap-new-kindle.sh 新机预置/后半段自动化入口
├── snapshot.sh 同步 + 切主题 + 抓图统一入口
├── calendar/ Vue 前端与背景导出
├── dash/ Kindle 侧 runtime、KUAL、文档与 staging
├── scripts/ 同步、抓图、SSH 与网络辅助脚本
└── tmp/ 本地实机截图和临时产物
部署模型
已越狱 Kindle
这条路径适合设备已经有 KUAL、USBNetwork、SSH:
- 在电脑上构建前端:
cd calendar
npm install
npm run typecheck
npm run build
- 同步到 Kindle:
cd /Users/gavin/kindle-dash
sh scripts/sync-layered-clock-to-kindle.sh kindle
- 切主题并立即出图:
ssh kindle '/mnt/us/dashboard/switch-theme.sh simple portrait'
- 如需启动 dashboard 主循环:
ssh kindle 'cd /mnt/us/dashboard && ./start.sh'
调试或排障时,当前更推荐:
ssh kindle 'cd /mnt/us/dashboard && DEBUG=true ./start.sh'
原因:
- 这条路径已实机验证可用
- 不依赖
KUAL的 UI 切换链路 - 出问题时可以直接看前台日志
新机 / 恢复出厂后 Kindle
这条路径适合 Kindle Voyage 5.13.6:
- USB 挂载后执行预置:
sh bootstrap-new-kindle.sh prepare-storage --download-kterm --kterm-version latest
- 在 Kindle 上完成:
WatchThis;log mrpiRename OTA Binaries -> Rename- 接回 Wi‑Fi
KTerm中执行sh /mnt/us/ssh-force-dropbear-22.sh
- 回到 Mac,执行后半段:
sh bootstrap-new-kindle.sh post-ssh -t simple -o portrait
注意:这条新机 bootstrap 方案当前仍未做“真机恢复出厂闭环验证”。
常用命令
前端开发
cd calendar
npm install
npm run dev
npm run typecheck
npm run build
npm run export:themes
主题与截图
sh snapshot.sh --list
sh snapshot.sh -t simple
sh snapshot.sh -t simple -o portrait
sh snapshot.sh --capture-only -b current-screen
sh snapshot.sh --date
新机 bootstrap
sh bootstrap-new-kindle.sh -h
sh bootstrap-new-kindle.sh prepare-storage --download-kterm --kterm-version latest
sh bootstrap-new-kindle.sh post-ssh -t simple -o portrait
SSH 恢复
如果 Kindle 上已经有 KTerm,但外部 SSH 不通:
sh /mnt/us/ssh-force-dropbear-22.sh
然后在 Mac 上:
ssh kindle
使用说明
日常使用
- Kindle 正常联网时,背景和主题配置可以更新
- 本机时钟按分钟重绘,不依赖网络
- 即使远端刷新失败,只要本地还有缓存背景,设备通常还能继续显示旧背景和本机时钟
换 Wi‑Fi 后
- 不影响 USB 预置
- 可能影响
ssh kindle - 可能影响主题强制同步和远端背景刷新
- 如果新网络能正常出外网,日常显示通常不受影响
验证与验收
当前仓库里可直接运行的校验主要是:
cd calendar
npm run typecheck
npm run build
以及脚本级别语法检查,例如:
sh -n bootstrap-new-kindle.sh
sh -n snapshot.sh
说明:
- 当前仓库没有可用的
lint脚本 - 当前仓库没有可用的
test脚本
文档索引
推荐按下面顺序看:
- 根仓库说明: README.md
- Kindle runtime 英文原始说明: dash/README.md
- Voyage 5.13.6 越狱路径: kindle-voyage-5.13.6-watchthis-zh.md
- SSH / KTerm 兜底: kindle-voyage-5.13.6-dual-ssh-playbook-zh.md
- Bootstrap 总说明: kindle-voyage-5.13.6-bootstrap-zh.md
- Bootstrap 闭环验证清单: kindle-voyage-5.13.6-bootstrap-validation-zh.md
- 白屏/KUAL/SSH 交接: kindle-voyage-5.13.6-white-screen-handoff-zh.md
已知限制
WatchThis/ demo /;log mrpi仍然不能完全自动化bootstrap-new-kindle.sh当前还没有做一次真机恢复出厂闭环验收ssh kindle依赖当前网络和 IP;换 Wi‑Fi 后可能要重新确认地址或 SSH 配置KUAL -> Dashboard与Dashboard -> 原生 UI/KUAL的边界切换在Kindle Voyage 5.13.6上仍不稳定stop.sh当前必须走保守恢复路径,实验性的“快速切换”方案已在2026-03-17撤回
Description
Languages
Shell
69.5%
Vue
10.4%
Lua
7.8%
TypeScript
4.4%
Swift
2.4%
Other
5.4%