Tabby Settings 插件详解:基于 SettingsTabProvider 实现可插拔的分栏设置界面
2026-09-04 20:12:44作者:袁立春Spencer
Tabby 的设置页是一个由多个插件共同贡献的"分栏式"界面:内置的窗口、快捷键、配置文件选项卡来自 tabby-settings,而 Shell、SSH、插件管理等选项卡则各自来自对应插件。本文以 tabby-settings/README.md 为骨架,完整覆盖其定义的使用 API 与注册方式,并结合仓库源码深入剖析 SettingsTabProvider 的每个字段如何被 设置页组件 消费,以及内置选项卡、快捷键直达、动态组件实例化等底层实现,帮助你在为自己的插件开发设置界面时真正做到"注册即可见、可排序、可快捷键直达"。
一、tabby-settings 是什么:分栏式设置界面
tabby-settings 是 Tabby 的内置插件(keywords 中标记为 tabby-builtin-plugin,包名 tabby-settings,描述为 "Tabby terminal settings page")。它向应用提供:
- 一个带左侧垂直选项卡导航的 Settings 页签(
<settings-tab>组件); - 工具栏上的齿轮按钮与
settings全局快捷键作为入口; - 一组可扩展点:
SettingsTabProvider(选项卡)、HotkeyProvider(快捷键)、ConfigProvider(默认配置); - 内置的 5 个选项卡:Application(应用)、Hotkeys(快捷键)、Window(窗口)、Vault(保险库)、Profiles & connections(配置文件与连接)、Config sync(配置同步)。
它的 peerDependencies(见 package.json)声明了对 tabby-core(*)、Angular 15 系列、@ng-bootstrap/ng-bootstrap 14 等依赖,意味着它是运行在 Tabby 宿主内的 Angular 插件模块,而不是独立应用。
二、使用 API:注册一个自定义设置选项卡
README 给出了完整的使用步骤,核心分两步。
第一步,从 tabby-settings 导入扩展基类:
import { SettingsTabProvider } from 'tabby-settings'
第二步,在你的插件 @NgModule 中通过 providers 数组以 multi: true 的方式注入子类:
@N
</parameter>
</function>
</tool_call>
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
热门内容推荐
最新内容推荐
Atom git-diff 包深度解析:编辑器侧栏 Git 差异标记的实现原理Git 翻译本地化自动化工作流:基于 po/AGENTS.md 的 PO 文件维护、AI 辅助翻译与质量评审全解PowerToys 嵌入式 MSIX 模块集成实践:WiX 资源嵌入与 PackageManager 注册全流程screenshot-to-code 的 AGENTS.md:面向 AI Agent 的工程协作规范——Poetry 环境、测试门禁与 Cursor Cloud 启动陷阱全解lazygit 依赖解析:safeexec —— 解决 exec.LookPath 跨平台命令查找陷阱的 Go 模块Spec Kit 扩展模板深度解析:基于 extensions/template 构建、调试并发布你的第一个扩展VS Code Copilot NES:xtab 单池 Token 预算级联(Global Budget Cascade)设计与实现解析Supabase 仓库中的 Vitest 快照测试实战:文件快照、内联快照与更新机制全解析ECC investor-outreach 技能实战:个性化融资触达邮件与跟进序列的完整操作规程Rustlings Traits 实战指南:从方法集合到特质边界,掌握 Rust 的 trait 体系
项目优选
收起
deepin linux kernel
C
33
18
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
903
1.82 K
暂无描述
Markdown
888
5.78 K
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.51 K
1.01 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.17 K
341