终端与 tmux
本地终端
Terminality 通过统一的 Rust 会话服务管理 Unix PTY 与 Windows ConPTY。
- 使用 WebGL xterm.js,并提供 Canvas 与 DOM 回退。
- 默认保留 10,000 行滚动缓冲。
- 终端输出通过二进制 Tauri Channel 以 32 KiB / 16 ms 批处理传输,而不是 JSON 字节。
- 支持中日韩输入法与复杂文本输入。
- 多行粘贴需要确认,避免意外执行。
- 禁用 OSC 52,终端输出不能静默写入剪贴板。
- 内置 MesloLGS NF 字体,也可切换到系统等宽字体。
⌘+/⌘-/⌘0和 Ctrl / Cmd + 滚轮只调整终端字号,不缩放 WebView。- Unix 检查前台进程组;Windows 对活动会话采用保守关闭确认。
- 透明度只作用于背景层,文字与控件保持完全不透明。
标准 tmux 附加
tmux 是一等连接,而不是附加功能。
- tmux 窗格可以和本地终端、SSH、文件窗格混合分屏。
- 前缀键、状态栏、窗口、分屏、复制模式、鼠标与分离行为全部由 tmux 自己管理。
- 原生 tmux 会话窗口(
⌘⇧M)支持刷新、创建、打开、重命名与明确结束。 - 会话身份使用
(服务器 PID, 创建时间戳),而不是可变名称。 - 关闭 Terminality 窗格只分离客户端,不会执行
kill-session。 - tmux 服务重启后复用的
$id会被识别为过期。
会话模型
| 概念 | 含义 |
|---|---|
PaneId | 分屏树中的稳定位置 |
PaneContentId | React 内容代际键;替换时轮换 |
SessionId | 挂载窗格从 Rust 获取的具体会话 |
替换窗格会轮换 PaneContentId,从而得到新的 xterm、PTY 与滚动缓冲;分屏重排则保留活动终端。
统一快捷键
⌘T 新建本地终端标签页
⌘N 新建本地终端窗口
⌘⇧P 命令编排器
⌘⇧M tmux 会话
⌘⇧H 连接库
⌘, 设置
⌘+ / ⌘- / ⌘0 调整字号