菜单

概述

相关源文件

本文档提供了 Tabby(原名 Terminus)的技术概览,它是一款高度可配置的终端模拟器、SSH 和串口客户端,适用于 Windows、macOS 和 Linux。文档解释了 Tabby 代码库中的核心架构、主要组件及其相互关系。

有关特定组件的信息,请参阅其专属维基页面:核心系统 2、终端功能 3、连接类型 4、用户界面 5 和平台支持 6

应用程序架构

Tabby 基于 Electron 框架和 Angular 构建,采用模块化插件架构。这种设计允许通过插件进行扩展,同时在核心功能中保持清晰的职责分离。

核心架构图

来源:README.md app/package.json

插件架构

Tabby 使用插件系统,允许扩展核心功能。插件是动态加载的,可以添加新功能、连接类型或用户界面元素。

来源:app/package.json README.md

核心组件

应用程序和窗口管理

应用程序是管理窗口、配置和平台特定功能的入口点。每个窗口可以包含多个标签页和分屏。

组件描述
应用程序主应用程序类,管理窗口和全局状态
AppWindow表示应用程序中的一个窗口实例
PlatformService提供平台特定功能
ConfigService管理应用程序配置
HotkeyManager处理键盘快捷键

来源:README.md package.json

终端引擎

终端引擎负责渲染和管理终端会话。它围绕 XTerm.js 构建,并带有各种扩展。

来源:README.md app/package.json

连接类型

Tabby 通过一个通用接口支持各种连接类型。每种连接类型都作为插件实现。

连接类型描述
SSH支持密钥、代理转发和端口转发的安全 Shell 连接
本地本地 shell 终端 (PowerShell、WSL、CMD 等)
串口具有可配置参数的串口连接
TelnetTelnet 协议连接

来源:README.md app/package.json

配置文件管理

配置文件允许用户保存连接设置以便快速访问。配置文件系统支持不同类型的连接。

来源:README.md

用户界面

用户界面使用 Angular 构建,提供可自定义的界面,包括标签页、分屏和各种设置。

分屏标签页系统

分屏标签系统允许用户将单个标签页分成多个窗格,每个窗格都包含一个终端。

来源:README.md

配置系统

配置系统管理用户偏好、连接配置文件和其他设置。

组件描述
ConfigService用于加载、保存和访问配置的中央服务
ConfigProvider为提供默认配置的组件提供接口
ProfilesService管理连接配置文件
HotkeyProvider为提供热键配置的组件提供接口

来源:README.md package.json

插件系统

Tabby 的插件系统允许在不修改核心代码的情况下扩展功能。插件是动态加载的 npm 包。

插件类型

插件类型描述
连接插件添加新的连接类型 (SSH、本地、串口、Telnet)
扩展插件为终端或用户界面添加新功能
平台插件添加对不同平台的支持 (Electron、Web)
主题插件提供自定义配色方案和主题

来源:README.md app/package.json

插件架构

来源:app/package.json README.md

构建与部署

Tabby 使用基于 Webpack 和 Electron Builder 的构建系统,为不同平台创建软件包。

来源:package.json README.md

主要功能

  • 终端仿真:完整的 VT220 终端,支持各种扩展
  • SSH 客户端:内置 SSH 客户端,具有连接管理器、X11 转发和代理转发功能
  • 串口终端:用于连接具有可自定义参数的串口设备
  • 分屏:能够将一个标签页分成多个终端窗格
  • 主题:可自定义的主题和配色方案
  • 标签页恢复:自动保存和恢复标签页
  • 插件:可通过插件扩展以增加功能

来源:README.md