Tabby 中的 Shell 集成在终端应用程序和受支持操作系统上的原生 Shell 环境之间提供了一个桥梁。此功能通过启用工作目录检测和系统级集成等特性来增强终端体验。
有关终端会话和连接处理的信息,请参阅终端引擎。
Shell 集成已实现支持
Linux 支持在平台服务实现中被明确排除。
来源:tabby-electron/src/services/platform.service.ts108-110
Shell 集成功能遵循分层架构,并具有平台特定的实现。
来源:tabby-core/src/api/platform.ts209-223 tabby-electron/src/services/platform.service.ts108-122 tabby-ssh/src/session/shell.ts109-115
PlatformService 是一个抽象类,定义了 Shell 集成能力接口。在基础实现中,不支持 Shell 集成。
来源:tabby-core/src/api/platform.ts209-223
ElectronPlatformService 通过 Electron 为桌面环境提供了 Shell 集成实现。
此实现将实际的 Shell 集成操作委托给在构造期间注入的 ShellIntegrationService。
来源:tabby-electron/src/services/platform.service.ts108-122
终端会话通过会话类中定义的方法实现工作目录检测。例如,在 SSHShellSession 中:
这些方法允许终端选项卡确定工作目录检测是否可用并检索当前目录路径。
来源:tabby-ssh/src/session/shell.ts109-115
Shell 集成的主要功能之一是能够检测和报告当前工作目录。这在以下序列图中表示:
此功能支持不同终端选项卡类型的各种特性。
来源:tabby-ssh/src/session/shell.ts109-115 tabby-ssh/src/components/sshTab.component.ts214-218
SSHTabComponent 使用工作目录检测来初始化用户当前目录中的 SFTP 面板。
当用户打开 SFTP 面板时,它将直接导航到其当前工作目录,而不是从根目录开始。
来源:tabby-ssh/src/components/sshTab.component.ts214-218
SFTP 面板包含用于通知用户工作目录检测的 UI 元素。
当工作目录检测不可用但可能启用时,会出现此通知。
来源:tabby-ssh/src/components/sftpPanel.component.pug35-43
当安装 Shell 集成时,它遵循以下序列:
此过程可能涉及写入 Shell 配置文件(例如 .bashrc、.zshrc 或 PowerShell 配置文件)以添加工作目录报告所需的钩子。
来源:tabby-electron/src/services/platform.service.ts108-122
Shell 集成使文件操作能够感知当前目录。例如,SFTP 面板以当前路径初始化:
路径通常由终端的当前工作目录确定,这使得文件操作更加直观。
来源:tabby-ssh/src/components/sftpPanel.component.ts51-53
Shell 集成功能因不同的连接类型而异。
| 连接类型 | 工作目录支持 | 备注 |
|---|---|---|
| SSH | 完整版 | 使用 Shell 转义序列检测目录更改。 |
| 本地终端 | 完整版 | 使用特定于平台的 API 进行目录检测。 |
| 串口 | 有限 | 无内置工作目录检测。 |
| Telnet | 有限 | 无内置工作目录检测。 |
每种会话类型根据其功能和协议限制实现适当级别的 Shell 集成。
来源:tabby-ssh/src/session/shell.ts109-115 tabby-ssh/src/components/sshTab.component.ts214-218 tabby-serial/src/components/serialTab.component.ts1-107 tabby-telnet/src/components/telnetTab.component.ts1-98
Shell 集成功能在几个关键文件中实现:
tabby-core/src/api/platform.ts - 定义平台服务(包括 Shell 集成)的抽象接口。tabby-electron/src/services/platform.service.ts - 为桌面环境实现 Shell 集成接口。tabby-ssh/src/session/shell.ts - 为 SSH 会话实现工作目录支持。tabby-ssh/src/components/sshTab.component.ts - 使用工作目录检测进行 SFTP 操作。tabby-ssh/src/components/sftpPanel.component.pug - 包含用于工作目录检测的 UI 元素。尽管提供的源文件中没有完整的 Shell 集成实现细节,但本文档概述了 Tabby 终端应用程序中 Shell 集成的架构和用法。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(c3dfb3)