Repository navigation
Terminal v1.0.1
越狱 iOS 设备的终端 App,修复版本,最低支持 iOS 12.0。终端仿真核心(VT100/xterm、UTF-8、中文与 emoji 列宽、256 色与真彩色、回滚与 reflow)为纯 C,界面层是 Objective-C + UIKit。
安装
rootless 越狱(Dopamine / Palera1n 等)— 推荐
- 文件:
Terminal_1.0.1_iphoneos-arm64.deb - 安装位置:
/var/jb/Applications/Terminal.app - 方式:
dpkg -i Terminal_1.0.1_iphoneos-arm64.deb,或用 Sileo / Zebra 的「本地安装」 postinst会自动执行uicache并刷新 SpringBoard
ipa(TrollStore 等)
- 文件:
Terminal_1.0.1.ipa,内含Payload/Terminal.app
本版修复的 issue
本版修复
- 中文输入(#1):拼音键盘的预编辑文本没有走完整的
UITextInput流程,导致打不出中文。现在补上textWillChange:/textDidChange:通知,unmarkText/insertText:正确落盘,退格逐字收缩组词而不是丢掉整串,textInRange:在预编辑区返回预编辑串,组词期间选区停在预编辑串末尾。 - 重排 reflow(#2):键盘弹出/收起只改行数,屏幕却会把两行并成一行;列数变窄再变回来,中文旁边会凭空多一个空格。根因是硬换行标记挂在了宽字符的零宽续格上、被重排循环跳过,以及宽字符换行让出的填充格被当成真空格。前者改成挂在最后一个真实格子上,后者新增
VT_WIDE_PAD标记,重排与取文本时都跳过。 - 多会话刷新(#3):新建/关闭会话时标签条的显隐改变了顶栏高度,但没人触发重排,标签条被压在终端视图下面,要进设置页再返回才恢复。现在
rebuildTabs会立刻重排,顶栏也始终置于最前。
校验
| 文件 | SHA256 |
|---|---|
Terminal_1.0.1_iphoneos-arm64.deb |
a86a02b76e2dcef204440ef3fed6f43ad3e32f443dafa596f2f63bcfdb48fc3e |
Terminal_1.0.1.ipa |
0e6145fc2959be98053196b169d4d2cb2ecf3bf81d64388f099018c6f4fd050d |
重排引擎的定向回归(行数往返、列数往返、宽字符行尾换行)与固定种子的随机往返测试在 tests/test_vt.c,make test 173 项断言全过;这些测试在修复前的代码上必定失败。
App 图标提取自 macOS 内置的 Terminal.app,属 Apple 的美术资源,不在本项目 MIT 许可的授权范围内;源代码许可见 LICENSE。