Tabby 中的设置界面提供了一种用户友好的方式来配置和定制应用程序。本文档描述了 Tabby 设置系统的架构、配置值如何存储和管理,以及设置界面如何与这些值交互。
有关配置文件管理的信息,请参阅配置文件管理。有关终端特定设置,请参阅终端功能。
Tabby 设置界面的核心是ConfigService,它负责加载、保存和提供用户配置值的访问。配置以 YAML 格式存储,并遵循分层结构。
来源:tabby-core/src/services/config.service.ts117-493 tabby-core/src/configDefaults.yaml1-63
Tabby 配置系统的一个关键特性是ConfigProxy类。此代理提供对配置值的透明访问,并自动回退到默认值。
configDefaults.yaml中定义的默认值。这使得应用程序能够维护一个最小化配置文件,其中只包含与默认值不同的值。
来源:tabby-core/src/services/config.service.ts34-115
设置界面分为多个选项卡,每个选项卡都专注于特定的设置类别。主要组件是SettingsTabComponent,它提供了整体结构和导航。
来源:tabby-settings/src/components/settingsTab.component.pug1-183
主设置选项卡包含通用应用程序设置:
来源:tabby-settings/src/components/settingsTab.component.pug62-121
窗口设置选项卡提供了定制应用程序窗口的选项:
来源:tabby-settings/src/components/windowSettingsTab.component.pug1-444
配置同步选项卡允许用户在多个设备之间同步其设置:
来源:tabby-settings/src/components/configSyncSettingsTab.component.pug1-141
Tabby 的配置同步功能通过ConfigSyncService实现。此服务允许用户将其配置存储在远程服务器中,并在多个设备之间同步。
来源:tabby-settings/src/services/configSync.service.ts1-202 tabby-settings/src/components/configSyncSettingsTab.component.ts1-148
配置同步系统允许用户选择性地同步配置的不同部分:
当用户希望某些设置是设备特定的,而将其他设置同步到多个设备时,这尤其有用。
来源:tabby-settings/src/components/configSyncSettingsTab.component.pug111-139 tabby-settings/src/services/configSync.service.ts19
对于高级用户,Tabby 通过“配置文件”选项卡提供对配置文件的直接访问。这允许用户:
此功能为高级用户提供了对其配置的精细控制。
来源:tabby-settings/src/components/settingsTab.component.pug141-175
当用户更改设置时,更改通常会通过ConfigService.save()方法立即保存。某些更改可能需要重新启动应用程序才能生效,这由requestRestart()方法处理,该方法会向用户显示一个重启按钮。
来源:tabby-settings/src/components/settingsTab.component.pug179-183 tabby-core/src/services/config.service.ts235-237
通过 Angular 的依赖注入,应用程序的任何部分都可以访问配置系统。组件和服务可以:
config.store读取配置值config.changed$监听配置更改config.save()保存更改这提供了一种一致的方式来从应用程序的任何部分访问和修改设置。
来源:tabby-core/src/services/config.service.ts117-493
Tabby 附带一组默认配置值,这些值定义在configDefaults.yaml中。这些默认值提供了应用程序所有可配置方面的基线设置,包括:
用户只需指定与这些默认值不同的值,从而保持配置文件简洁和最小化。
来源:tabby-core/src/configDefaults.yaml1-63
设置界面利用 Angular 的组件系统和响应式编程模型:
config.store中的值config.save()来持久化更改config.changed$发出事件以通知应用程序的其他部分此架构确保设置更改能立即反映在整个应用程序中并持久保存到磁盘。