Skip to content

终端与 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分屏树中的稳定位置
PaneContentIdReact 内容代际键;替换时轮换
SessionId挂载窗格从 Rust 获取的具体会话

替换窗格会轮换 PaneContentId,从而得到新的 xterm、PTY 与滚动缓冲;分屏重排则保留活动终端。

统一快捷键

⌘T          新建本地终端标签页
⌘N          新建本地终端窗口
⌘⇧P         命令编排器
⌘⇧M         tmux 会话
⌘⇧H         连接库
⌘,          设置
⌘+ / ⌘- / ⌘0  调整字号

Terminality — 连接每个角落