Skip to content

Terminal v1.0.2

Choose a tag to compare

@FPS1024 FPS1024 released this 18 Sep 11:19
· 11 commits to main since this release

越狱 iOS 设备的终端 App,最低支持 iOS 12.0。终端仿真核心(VT100/xterm、UTF-8、中文与 emoji 列宽、256 色与真彩色、回滚与 reflow)为纯 C,界面层是 Objective-C + UIKit。

1.0.1 修好了中文输入法的组词(预编辑)流程,但选候选项上屏这一步仍然是丢的:英文能打,拼音候选点下去终端里什么都没有。这一版补上。

安装

rootless 越狱(Dopamine / Palera1n 等)— 推荐

  • 文件:Terminal_1.0.2_iphoneos-arm64.deb
  • 安装位置:/var/jb/Applications/Terminal.app
  • 方式:dpkg -i Terminal_1.0.2_iphoneos-arm64.deb,或用 Sileo / Zebra 的「本地安装」
  • postinst 会自动执行 uicache 并刷新 SpringBoard

ipa(TrollStore 等)

  • 文件:Terminal_1.0.2.ipa,内含 Payload/Terminal.app

本版修复

  • 中文候选词上屏(#1 后续):有的中文输入法上屏时只调用 unmarkText、不调用 insertText:,原来我们把预编辑串直接清掉,等于把这串字丢了。现在 unmarkText 会把内容记下来、推到本轮 RunLoop 末尾补发;如果紧接着走的是标准入口 insertText:,insertText: 会先取消这份待发内容,所以不会重复发送。
  • insertText: 里单个非 ASCII 字符(中文、emoji)改为直接按 UTF-8 送出,不再走按键编码;ASCII 与控制键行为不变。
  • 补上 setAttributedMarkedText:selectedRange:(UIKit 有时走带属性的那个入口),textInRange: 不再给输入法返回 nil。

同时包含 1.0.1 的修复

  • #1 无法输入中文(预编辑文本走完整的 UITextInput 流程)—— 4d5703f
  • #2 终端字符串间距异常(reflow 丢换行、多空格)—— b0539b1
  • #3 终端刷新异常(标签条显隐没触发重排)—— 962651b

校验

文件 SHA256
Terminal_1.0.2_iphoneos-arm64.deb 640ee98dda9c6ed5a49492f3fff4101bc740dc798af8ad066688a13a30d30770
Terminal_1.0.2.ipa d193f6a871f98fc3618dfae29f8deb5182006373fbc31804ac172e332c3ccc3e

重排引擎的定向回归与固定种子的随机往返测试在 tests/test_vt.c,make test 173 项断言全过。

App 图标提取自 macOS 内置的 Terminal.app,属 Apple 的美术资源,不在本项目 MIT 许可的授权范围内;源代码许可见 LICENSE。