本文档介绍了 Tabby 的配置文件管理系统,该系统允许用户保存、检索和组织不同终端类型的连接配置。该系统负责处理 SSH、Telnet、串行端口和本地终端连接的配置文件的创建、存储、编辑和启动。有关启动无持久配置文件的终端的信息,请参阅 标签页管理与恢复。
配置文件管理系统允许用户为各种终端协议创建可重用的连接配置。这些配置文件可以组织到组中,跨标签页共享,并包含特定于协议的设置,例如 SSH 密钥、串行端口参数或 Telnet 选项。
Tabby 支持几种连接配置文件类型
| 配置文件类型 | 描述 | 提供商 |
|---|---|---|
| SSH | 安全 Shell 连接 | SSHProfilesService |
| 串口 | 串行端口连接 | SerialProfilesService |
| Telnet | Telnet/原始套接字连接 | 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
可以通过几种方式创建配置文件
创建新配置文件时,将调用 ProfilesService.newProfile(),它会:
来源:tabby-core/src/services/profiles.service.ts98-111 tabby-settings/src/components/profilesSettingsTab.component.ts62-99
ProfilesSettingsTabComponent 提供了编辑配置文件的用户界面。当配置文件被编辑时:
ProfilesService.writeProfile() 将修改后的配置文件写回配置配置文件编辑的一个关键方面是使用 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(),它会:
getConfigProxyForProfile() 检索完整的配置文件设置getNewTabParameters() 从配置文件提供者获取标签页参数来源:tabby-core/src/services/profiles.service.ts163-169 tabby-core/src/services/profiles.service.ts190-202
配置文件选择器允许用户快速选择要启动的配置文件。它显示:
可以通过热键或“新建标签页”按钮访问该选择器,并在 ProfilesService.showProfileSelector() 中实现。
来源:tabby-core/src/services/profiles.service.ts224-313
配置文件组允许将配置文件组织到逻辑类别中。该系统支持:
组可以为每种配置文件类型拥有自己的默认设置,这些设置将被该组内的配置文件继承。
可以通过“配置文件”设置选项卡创建、编辑或删除组。删除组时,用户可以选择:
组的存储方式与配置文件类似,都在配置中。
来源:tabby-core/src/services/profiles.service.ts389-497 tabby-settings/src/components/profilesSettingsTab.component.ts149-247
Tabby 使用分层的配置文件设置系统,允许值从多个级别继承:
这是通过 ConfigProxy 实现的,它通过在适用默认值之上叠加特定设置来创建配置文件的虚拟视图。
来源:tabby-core/src/services/profiles.service.ts69-72 tabby-core/src/services/profiles.service.ts361-370
快速连接功能允许使用字符串格式创建临时配置文件。它得到 SSH 和 Telnet 提供者的支持,可以通过简化的语法进行连接:
user@host:porthost:portport@baudrate每个 QuickConnectProfileProvider 都实现了:
quickConnect() - 将字符串解析为配置文件intoQuickConnectString() - 将配置文件转换为其字符串表示形式快速连接条目会出现在配置文件选择器中,并且可以直接从命令行使用。
来源: tabby-ssh/src/profiles.ts113-150 tabby-telnet/src/profiles.ts77-106 tabby-serial/src/services/serial.service.ts32-49
配置文件管理系统包含几个关键的 UI 组件
ProfilesSettingsTabComponent - 设置中管理配置文件的主要界面EditProfileModalComponent - 创建/编辑配置文件的模态对话框EditProfileGroupModalComponent - 编辑配置文件组的模态对话框这些组件与 ProfilesService 交互,以对配置文件和组执行操作。
配置文件设置选项卡提供了配置文件组及其包含的配置文件的分层视图。它允许
来源: tabby-settings/src/components/profilesSettingsTab.component.pug1-190 tabby-settings/src/components/profilesSettingsTab.component.ts16-377
所有配置文件和组都存储在由 ConfigService 管理的应用程序配置中
config.store.profilesconfig.store.groupsconfig.store.profileDefaultsconfig.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 的配置文件管理系统提供了一种灵活且可扩展的方式来存储、组织和使用连接配置。其分层的默认值和设置继承方法使用户能够有效地管理大量配置文件,同时保持一致性。