菜单

配置文件管理

相关源文件

目的与范围

本文档介绍了 Tabby 的配置文件管理系统,该系统允许用户保存、检索和组织不同终端类型的连接配置。该系统负责处理 SSH、Telnet、串行端口和本地终端连接的配置文件的创建、存储、编辑和启动。有关启动无持久配置文件的终端的信息,请参阅 标签页管理与恢复

概述

配置文件管理系统允许用户为各种终端协议创建可重用的连接配置。这些配置文件可以组织到组中,跨标签页共享,并包含特定于协议的设置,例如 SSH 密钥、串行端口参数或 Telnet 选项。

配置文件类型

Tabby 支持几种连接配置文件类型

配置文件类型描述提供商
SSH安全 Shell 连接SSHProfilesService
串口串行端口连接SerialProfilesService
TelnetTelnet/原始套接字连接TelnetProfilesService
本地本地终端会话LocalProfilesService

来源:tabby-ssh/src/profiles.ts10-151 tabby-serial/src/profiles.ts11-107 tabby-telnet/src/profiles.ts7-107

架构

配置文件管理系统遵循基于提供者的架构,其中每种连接类型都实现一个通用接口,但提供特定的功能。

系统设计

来源:tabby-core/src/services/profiles.service.ts15-515 tabby-core/src/api/profileProvider.ts1-86

ProfilesService 是管理所有配置文件操作的核心组件。它与特定类型的 ProfileProvider 实现配合使用,以处理特定于协议的细节。ConfigService 用于将配置文件持久存储在 Tabby 的配置中。

配置文件数据模型

来源:tabby-core/src/api/profileProvider.ts7-45 tabby-ssh/src/profiles.ts10-151 tabby-serial/src/api.ts9-25 tabby-telnet/src/session.ts11-19

配置文件操作

创建配置文件

可以通过几种方式创建配置文件

  1. 通过配置文件编辑器从头开始创建
  2. 通过复制现有配置文件
  3. 通过使用模板(标记为模板的特殊内置配置文件)
  4. 通过支持的配置文件类型的快速连接

创建新配置文件时,将调用 ProfilesService.newProfile(),它会:

  1. 生成配置文件的唯一 ID
  2. 将其添加到配置存储
  3. 调用特定于提供者的函数以进行任何额外的设置

来源:tabby-core/src/services/profiles.service.ts98-111 tabby-settings/src/components/profilesSettingsTab.component.ts62-99

编辑配置文件

ProfilesSettingsTabComponent 提供了编辑配置文件的用户界面。当配置文件被编辑时:

  1. 用户在编辑模态框中修改配置文件属性
  2. 通过 ProfilesService.writeProfile() 将修改后的配置文件写回配置
  3. 配置被保存

配置文件编辑的一个关键方面是使用 ConfigProxy,它通过在适用默认值之上叠加特定设置来提供配置文件的虚拟视图。

  • 全局默认值
  • 特定于提供者的默认值
  • 特定于组的默认值

这使得创建只需最少自定义设置的配置文件成为可能,这些配置文件会从更高级别继承值。

来源:tabby-core/src/services/profiles.service.ts114-125 tabby-settings/src/components/profilesSettingsTab.component.ts101-108 tabby-settings/src/components/editProfileModal.component.ts59-61

启动配置文件

当启动配置文件时,将调用 ProfilesService.launchProfile(),它会:

  1. 使用 getConfigProxyForProfile() 检索完整的配置文件设置
  2. 使用 getNewTabParameters() 从配置文件提供者获取标签页参数
  3. 使用参数打开一个新标签页
  4. 将配置文件添加到最近使用的配置文件列表

来源:tabby-core/src/services/profiles.service.ts163-169 tabby-core/src/services/profiles.service.ts190-202

配置文件选择

配置文件选择器允许用户快速选择要启动的配置文件。它显示:

  1. 最近使用的配置文件
  2. 用户创建的配置文件
  3. 内置配置文件(如果已启用)
  4. 快速连接选项

可以通过热键或“新建标签页”按钮访问该选择器,并在 ProfilesService.showProfileSelector() 中实现。

来源:tabby-core/src/services/profiles.service.ts224-313

配置文件组

配置文件组允许将配置文件组织到逻辑类别中。该系统支持:

  1. 用户创建的组
  2. 特殊的内置组(例如,“内置”、“未分组”)

组可以为每种配置文件类型拥有自己的默认设置,这些设置将被该组内的配置文件继承。

组管理

可以通过“配置文件”设置选项卡创建、编辑或删除组。删除组时,用户可以选择:

  1. 将包含的配置文件移动到“未分组”
  2. 删除相关配置文件

组的存储方式与配置文件类似,都在配置中。

来源:tabby-core/src/services/profiles.service.ts389-497 tabby-settings/src/components/profilesSettingsTab.component.ts149-247

继承和默认值

Tabby 使用分层的配置文件设置系统,允许值从多个级别继承:

  1. 配置文件默认值(所有配置文件的基本默认值)
  2. 提供者默认值(特定于类型的默认值)
  3. 组默认值(特定组内配置文件的默认值)
  4. 单个配置文件设置

这是通过 ConfigProxy 实现的,它通过在适用默认值之上叠加特定设置来创建配置文件的虚拟视图。

来源:tabby-core/src/services/profiles.service.ts69-72 tabby-core/src/services/profiles.service.ts361-370

快速连接

快速连接功能允许使用字符串格式创建临时配置文件。它得到 SSH 和 Telnet 提供者的支持,可以通过简化的语法进行连接:

  • SSH: user@host:port
  • Telnet: host:port
  • 串行端口: port@baudrate

每个 QuickConnectProfileProvider 都实现了:

  1. quickConnect() - 将字符串解析为配置文件
  2. intoQuickConnectString() - 将配置文件转换为其字符串表示形式

快速连接条目会出现在配置文件选择器中,并且可以直接从命令行使用。

来源: tabby-ssh/src/profiles.ts113-150 tabby-telnet/src/profiles.ts77-106 tabby-serial/src/services/serial.service.ts32-49

用户界面组件

配置文件管理系统包含几个关键的 UI 组件

  1. ProfilesSettingsTabComponent - 设置中管理配置文件的主要界面
  2. EditProfileModalComponent - 创建/编辑配置文件的模态对话框
  3. EditProfileGroupModalComponent - 编辑配置文件组的模态对话框
  4. 配置文件选择器 - 用于选择要启动的配置文件的对话框

这些组件与 ProfilesService 交互,以对配置文件和组执行操作。

配置文件设置选项卡布局

配置文件设置选项卡提供了配置文件组及其包含的配置文件的分层视图。它允许

  1. 创建、编辑、删除配置文件和组
  2. 管理配置文件类型的默认设置
  3. 为新选项卡设置默认配置文件
  4. 配置快速连接行为

来源: tabby-settings/src/components/profilesSettingsTab.component.pug1-190 tabby-settings/src/components/profilesSettingsTab.component.ts16-377

与 ConfigService 的集成

所有配置文件和组都存储在由 ConfigService 管理的应用程序配置中

  • 配置文件: config.store.profiles
  • 组: config.store.groups
  • 提供程序默认值: config.store.profileDefaults
  • 默认配置文件: config.store.terminal.profile

当配置文件或组被修改时,更改会写入配置并使用 config.save() 持久化。

来源: tabby-core/src/services/profiles.service.ts79-93 tabby-core/src/services/profiles.service.ts342-352

最近使用的配置文件

系统维护一个最近使用的配置文件列表,以便快速访问常用连接。此列表存储在 localStorage 中,而不是主配置中,并显示在配置文件选择器的顶部。

来源: tabby-core/src/services/profiles.service.ts190-202 tabby-core/src/services/profiles.service.ts315-319

总结

Tabby 的配置文件管理系统提供了一种灵活且可扩展的方式来存储、组织和使用连接配置。其分层的默认值和设置继承方法使用户能够有效地管理大量配置文件,同时保持一致性。