这是关于如何从终端仿真作为命令行、文本主导的 shell 和用户界面的主要构建块迁移的长期旅程的最后一部分。
之前部分的链接:
- 追逐无终端 CLI 的梦想(2016 年, rant)
- 新命令行界面的黎明(2017 年,架构)
- 新命令行界面的一天:shell(2022 年,设计)
- 鞭打新 shell Lash#Cat9(2022 年,证明和开发)
相关内容:
- 对“终端”的心理模型总结:终端仿真模拟一个不存在的机器,是为最薄弱设备构建的大状态表和指令切换,隐藏了很多问题,人们还沉迷于扩展它,而这被当作默认认真对待是一种悲剧,它是层层模拟而非最后手段,还有各种指令集和子集选择启发式。
Arcan 项目:
- 包括多个部分,如 libarcan-tui、libarcan-shmif 等。
- libarcan-tui 是核心,有 Lua 绑定等,用于替代 ncurses 等。
- libarcan-shmif 用于与桌面通信,libarcan-shmif-server 用于另一半。
- libarcan-a12 提供 wire 传输,arcan-net 提供独立二进制包装。
- afsrv_terminal 是最后一块,可作为终端模拟器输出到 libarcan-tui。
代码示例:
- C 语言示例展示了基本的窗口绘制和事件处理。
- Lua 示例类似,更简洁。
更多窗口:
- 可以请求新窗口,类似创建原始上下文,有 hint 用于沟通窗口用途。
- 如在 Cat9 中的两种形式,包括嵌入和接管进程。
读取一行:
- 实现类似 libreadline 的功能,包括提示、自动完成等。
- Lua 示例更详细。
网络:
- 工具提供网络功能,有推送和拉取两种方式。
- 不同应用在网络环境下有不同策略,如处理数据传输和屏幕更新。
总结来说,Arcan 项目提供了一种替代终端仿真的方式,涵盖了窗口管理、文本编辑、网络等方面,通过多种代码示例展示了其功能和用法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。