终端
OxideTerm 使用 alacritty_terminal + GPUI 实现原生终端。SSH、本地 PTY、Telnet 和串口的输入直接更新 Rust 中的终端状态,再由 GPUI 绘制到 GPU 表面;数据不经过浏览器脚本或本地网络桥接。
终端会根据输入活动和待处理数据在三级策略之间自动切换:
| 级别 | 触发条件 | 作用 |
|---|---|---|
| Boost | 上一轮未能排空待处理终端事件 | 提高单轮处理预算,尽快追上大输出 |
| Normal | 最近有键盘输入或终端活动 | 保持交互和滚动响应 |
| Idle | 一段时间没有终端活动 | 减少无意义重绘和资源消耗 |
渲染策略还会依据质量、平衡、性能或兼容配置调整事件排空预算、图片缓存和视觉效果。切换由 Rust 状态驱动,不依赖页面可见性或浏览器动画循环。
进程内数据流
Section titled “进程内数据流”终端与桌面界面之间没有线协议。典型 SSH 终端的数据流如下:
SSH PTY 通道 → TerminalSession → TerminalState → GPUI 绘制滚动缓冲、光标、选区、命令标记、搜索结果以及 Sixel/Kitty 图形都由 Rust 终端会话持有。窗口尺寸变化会直接更新会话并调整远端 PTY,无需跨前后端序列化。
多标签页与分屏
Section titled “多标签页与分屏”- 打开多个终端标签页,每个连接到不同或相同的 SSH 会话
- 支持水平和垂直分屏,实现并排查看
- 每个面板维护独立的 shell 通道
- 拖拽标签页重新排列或拆分为新面板
从终端命令栏向多个终端面板发送同一条命令,适用于管理集群或在多个会话中执行相同操作。
在命令栏的广播菜单中选择目标,再提交命令。当前面板和选中的目标会收到这条命令;直接在终端画面中键入的内容不会逐键镜像。详见广播输入。
搜索当前活动面板的原生终端滚动缓冲区。匹配结果会直接在终端画面中高亮,并支持上一个/下一个导航。当前实现使用区分大小写的字面文本匹配;搜索范围取决于配置的滚动缓冲行数。
使用 Ctrl+Shift+F(macOS 上为 ⌘F)打开搜索栏。详细说明见终端搜索。
会话录制与回放
Section titled “会话录制与回放”录制终端会话以 asciicast v2 格式保存,供后续回顾:
- 捕获所有终端输出并精确记录时间戳
- 支持变速回放(0.5×–8×)
- 导出录制文件以分享或归档
- 兼容 asciinema 生态
按 ⌘K(macOS)或 Ctrl+K(Windows/Linux)打开 命令面板——快速访问 OxideTerm 中的任何操作,包括连接、设置、搜索和快捷键。
进入禅模式可最小化干扰——隐藏侧边栏、标签栏和状态栏,让终端占据全部屏幕空间。
为终端自定义每个标签页的背景图片:
- 13 种支持的标签类型
- 可调整透明度和模糊度
- 多种适配模式(覆盖、包含、拉伸)
- 会话树 — 以层级结构组织连接,支持文件夹和分组
- 快速连接 — 直接输入主机/用户名/端口进行连接
- 导入/导出 —
.oxide加密格式(ChaCha20-Poly1305 + Argon2id) - SSH Config 导入 — 自动解析
~/.ssh/config导入现有连接 - 跳板机 / ProxyJump — 无限跳数,网络拓扑图 + Dijkstra 寻路
- 认证方式 — 密码、SSH 密钥(RSA/Ed25519/ECDSA)、SSH Agent(跨 macOS、Linux、Windows 系统 Agent 支持)、证书、键盘交互 2FA
- Known Hosts TOFU — 主机密钥验证,兼容
~/.ssh/known_hosts;拒绝密钥变更(防止中间人攻击) - 连接池 — 终端、SFTP、转发、IDE 通过引用计数连接池共享一个 SSH 连接
- 空闲超时 — 可配置(5m / 15m / 30m / 1h / 永不);无消费者的连接超时后自动断开
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 新建连接 | ⌘ N | Ctrl+N |
| 本地终端 | ⌘ T | Ctrl+T |
| 命令面板 | ⌘ K | Ctrl+K |
| 终端搜索 | ⌘ F | Ctrl+Shift+F |
| 内联 AI | ⌘ I | Ctrl+Shift+I |
| 快捷键列表 | ⌘ / | Ctrl+/ |
| 禅模式 | ⌘ Shift+Z | Ctrl+Shift+Z |
OxideTerm 还支持桌面平台的本地终端会话(PTY),基于 portable-pty。自动检测 Shell 类型:
- macOS/Linux:
zsh、bash、fish、pwsh - Windows:PowerShell 7、Git Bash、WSL2、CMD(原生 ConPTY——完整支持 TrueColor 和 ANSI,无传统 WinPTY)
资源与主机工具
Section titled “资源与主机工具”活动 SSH 节点可以向原生监控和主机工具提供延迟、进程、服务、容器、端口、文件系统、软件包、日志及其他采样状态。它们与终端共享节点身份和重连状态,而不是打开一个无关的工作区。