Skip to content

[Feature] 「在终端打开」支持自定义选择终端应用(Ghostty/iTerm2 等) #568

Description

@thirking

背景与问题

ZTools 的「在终端打开」功能(从 Finder 唤出或插件 IPC 调用)在 macOS 上硬编码系统 Terminal.app,无法选择其他终端。用户安装了 Ghostty、iTerm2 等第三方终端后,希望能切换到自己习惯的终端,但当前没有任何配置项。

相关:#561(在文件夹里边无法打开终端)

期望

在设置中增加「打开终端时使用的终端应用」选项,三平台(macOS / Linux / Windows)均支持:

  • 常见终端预设下拉选择
  • 支持填入自定义命令模板(含 {path} 占位符)

关键设计

现状

终端启动逻辑散落两处且重复,都硬编码 Terminal:

  • src/main/api/renderer/systemCommands.ts:497 openTerminalOnMac(Finder 命令路径)
  • src/main/utils/appleScriptHelper.ts:184 openInTerminal(插件 IPC 路径)

方案

  1. 新建 src/main/utils/terminalLauncher.ts,统一终端启动逻辑,消除两处重复。三平台现有 default 函数迁入作为「系统默认」处理器,行为保持向后兼容。
  2. settings-general 新增两字段:
    • terminal'default' | 预设 id | 'custom'
    • terminalCustomCommand:命令模板,含 {path} 占位符
  3. 设置 UI 塞进通用设置页(GeneralSetting.vue),新增「终端」分组:下拉选预设 + 选中「自定义」时展开命令输入框。
  4. 无需新增 IPC:打开终端时主进程直接读取配置分发。

预设清单(按平台)

平台 预设
macOS 系统默认(Terminal)、Ghostty、iTerm2、Warp
Linux 系统默认(回退链)、gnome-terminal、konsole、xterm
Windows 系统默认(回退链)、Windows Terminal、PowerShell、CMD

三平台均含「自定义」选项。

macOS Ghostty 启动方式(已验证)

macOS 上 ghostty CLI 不能直接启动终端,需用:

open -na Ghostty.app --args --working-directory=<path>

详细设计文档

完整设计见:docs/superpowers/specs/2026-07-02-configurable-terminal-launcher-design.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions