termare_view
Language: 中文简体 | English
支持全平台的终端模拟器,使用 Flutter 开发,是一个通过 canvas 渲染的上层组件,不依赖任何平台代码。
这个 view 就类似于 xterm.js 一样,仅仅是一个上层 UI 显示组件,你可以使用来自操作系统底层的终端流,亦或者是连接 ssh 服务器的终端流,只需要给这个组件输入,就能自动的解析终端序列渲染终端。
对于这个组件有问题的
开始使用
引入项目
这是一个纯 flutter package,所以只需要在 yaml 配置文件的 dependencies 下引入:
termare_view:
git: https://github.com/termare/termare_view
创建终端控制器
TermareController controller = TermareController(
showBackgroundLine: true,
);
使用组件
TermareView 是一个 Widget,通常情况下,只需要给一个 TermareController 作为终端组件的控制器即可。
TermareView(
controller: controller,
),
让终端显示一些东西
controller.write('hello termare_view');
代码在 example 中。
更详细的例子
为何要用Flutter重写而不是安卓原生?
- 一次编写,到处运行。
- Flutter 当前作为非常优秀的跨平台框架,我想也能用它来编写一个全平台终端模拟器,从安卓前几代终端模拟器来看, 这可能是一个比较漫长的过程,而我的时间并不太多,但我会尽量尝试重写。
- 我喜欢尝试。
更多原因请移步个人文章
- Flutter 终端模拟器探索篇(一)| 简易终端模拟器
- Flutter 终端模拟器探索篇(二)| 完整终端模拟器
- Flutter 终端模拟器探索篇(三)| 原理解析与集成
- Flutter 终端模拟器组件 - 开源篇
是否存在未适配的序列?
我已经参考 xterm.js 中支持的序列,大部分序列均已适配,但仍有极个别较难的序列存在问题。
帮助开发?
测试序列可以通过输入指定的序列对比 xterm.js 或者操作系统中本地终端的显示。
Terminal resources
Terminal emulators
-
VTE (libvte): Terminal emulator widget for GTK+, mainly used in gnome-terminal. Source, Open Issues, and All (including closed) issues.
-
iTerm 2: OS X terminal application. Source, Issues and Documentation (which includes iTerm2 proprietary escape codes).
-
Konsole: KDE terminal application. Source, in particular tests, Bugs and Wishes.
-
hterm: JavaScript terminal implementation from Chromium. Source, including tests, and Google group.
-
xterm: The grandfather of terminal emulators. Source.
-
Connectbot: Android SSH client. Source
-
Android Terminal Emulator: Android terminal app which Termux terminal handling is based on. Inactive. Source.
-
termux: Android terminal and Linux environment - app repository. Source.