Skip to content

v1.1.0 — 拼音 IME 优化 + 物理键盘体验

Choose a tag to compare

@boangs boangs released this 01 Jun 13:29
· 190 commits to master since this release

基于 v1.0.0 的拼音 IME 系统性优化,围绕物理键盘 (蓝牙 / 2.4G / Type Folio) 打中文的体感做了三块改造。

安装(沿用 v1.0.0 流程)

curl -fLO https://github.com/boangs/rmkit/releases/latest/download/rmkit-cn-v1.1.0.tar.gz
tar -xzf rmkit-cn-v1.1.0.tar.gz
cd rmkit-cn-v1.1.0
bash installer/install.sh

OTA 后或者从旧版升级也是同一条命令 (install.sh 6 阶段防砖部署, 0 风险)。

本版核心改动

1. long-poll 0-polling 字符流

旧版 charPoller 50ms 固定 polling, 中文模式下 xochitl 持续 30-60% CPU, 每字符平均 25ms 等待。新版改成事件驱动:

  • ime_hook 写 char_queue 后通过 unix datagram socket 异步通知 ime-server
  • ime-server 新增 /pop-all-chars-blocking long-poll endpoint, 字符到达立刻返回
  • QML chain mode: xhr 响应回调里递归发下次, 形成持续 long-poll

字符拉取延迟 25ms → ~5ms; 空闲 CPU 接近 0%。

2. 候选框 e-ink 友好渲染

物理键盘场景候选框出现在文档主体区 (e-ink 慢 waveform), 每次刷新视觉明显。优化:

  • 候选框从深色块 (#222 + 白字) 改成 白底 + 1px 黑边 + 黑字 (像素变化最少)
  • 候选词 200ms debounce: 连续按键只在最后停手后查一次, 避免每按一字母都重绘
  • debounce 期间保留旧候选, 新结果替换而非"满→空→满"抖动
  • 无候选时整框隐藏, 不显示一条 16px 高的细线

3. 物理键盘快捷键

按键 buffer 非空 buffer 空
1–9 选当前页第 N 个候选 数字直接输入
空格 commit 第一候选 普通空格
回车 buffer 原文上屏 (英文模式) 普通回车
, 上一页候选 , (全角逗号)
. 下一页候选 。 (句号)
? ! : ; ( ) < > \ commit 第一 + 中文标点 直接中文标点

Release Assets

  • rmkit-cn-v1.1.0.tar.gz (77MB) — 完整安装包: 源码 + 编译产物 + vendor 依赖
  • dist.tar.gz (34MB) — 仅编译产物, 给 git clone 用户

兼容性

  • reMarkable 2 (rm2, armv7l)
  • reMarkable Paper Pro (RMPP, aarch64)
  • reMarkable Paper Pro Move (RMPPM, aarch64)

升级注意

从 v1.0.0 升级: 直接跑新 install.sh, 6 阶段防砖部署会原子替换 ime-server / ime_hook.so / pinyin_interceptor.qmd 三个核心文件, 无需手动处理。