Skip to content

Terminal v1.0.4

Choose a tag to compare

@FPS1024 FPS1024 released this 20 Sep 12:41
· 7 commits to main since this release

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

这一版修的是「连按两个 -,第二个不按原样进去」。

安装

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

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

从 1.0.2 / 1.0.3 直接覆盖安装即可,bundle id 没变,设置与会话不受影响。

本版修复

  • -- 被 iOS 改写成别的字符 —— cbf86fd

    输入视图原来只关了 autocorrection / spellChecking / autocapitalization,漏掉了 iOS 11 起新增、和它们并列的智能标点三项。这三项默认是 Default(跟着键盘类型走,通常是开着的),而且它们在字符送进 App 之前就把按键改写掉:

    你按的 实际送进来的
    - - 一个长破折号 —
    " 弯引号 “ / ”
    ... …

    终端要的是原样透传,所以 smartDashesType / smartQuotesType / smartInsertDeleteType 现在全部显式关掉。关掉之后 -- 就是两个 -。

  • 顺带把 replaceRange:withText: 补完整:系统要改写的范围正好紧贴光标时(智能标点、听写纠正、输入法改写都是这种情况),先在 shell 里把它们退掉再打新内容,终端里不会再多留一份旧字符串;范围不紧贴光标的仍然不动,免得凭空删掉命令行上的东西。

同时包含 1.0.3 的修复

  • #locale zsh 里键入中文回显成乱码(<00ad> 之类) —— 61170e0
    pick_lang() 原来只看 locale 目录在不在,C.UTF-8 / zh_CN.utf8 这些在 Darwin 上其实没有数据,名字一无效 shell 就停在 C locale,zsh 的 ZLE 掉进单字节模式。现在改成直接问 libc(newlocale + wcwidth_l),并把 LANG / LC_CTYPE / LC_ALL 一起设成真正可用的那个,rc 里残留的 LANG=C.UTF-8 也压不住它。
  • out/ 里从此只放一个 deb,不再产出 ipa —— 32e7ebc

校验

文件 SHA256
Terminal_1.0.4_iphoneos-arm64.deb a26e6431adc1fb097b6a54bd641cc2d21e1ca1fef130fb0a8c7fabf1f05941e2

make test 173 项断言全过。

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