dsh-sidebar-tab-close:让 Ctrl+W 优先关闭右侧栏标签页

前言

在 DeepSeek Harness(DSH)桌面客户端里,右侧栏常同时开着多个面板标签——预览、工具页、文档等。默认情况下,Ctrl+W(macOS 为 ⌘W)的语义是「关窗口优先级最高」:焦点在右侧栏面板内时会关掉当前标签,但焦点在中间的会话区时往往会直接关掉整个窗口,标签页却还在。只想关掉正在看的那个标签时,操作反直觉,也更容易误关窗口。下面介绍社区维护者 Aily-DSH 的客户端插件 dsh-sidebar-tab-close,它调整快捷键优先级,并补上双击标签关闭的鼠标操作。

这是什么

dsh-sidebar-tab-close 是纯客户端插件:不写配置文件、不占端口、不改 app.asar,运行时通过官方 ctx.sidebarRight 服务打补丁;禁用或卸载后即恢复 DSH 原生行为。仓库:GitHub - Aily-DSH/dsh-sidebar-tab-close;社区目录页:skillhub.cn。当前 package 版本为 0.1.1,许可证 MIT。

它解决什么问题

DSH 原生逻辑可以概括为:

  • 焦点在右侧栏面板内 → 关闭该标签页
  • 焦点在会话区 → 直接关闭整个窗口,标签页不动

本插件把优先级倒过来:只要右侧栏展开且存在可关闭的标签页,Ctrl+W 就关闭当前活动标签;没有可关标签时才退回关窗口。同时支持 双击右侧栏标签页 直接关闭。与原生一致:canCloseTarget 判定不可关的标签(例如唯一的引导页)仍然不可关。

核心功能

  • Ctrl+W(macOS ⌘W)优先关闭右侧栏当前标签页
  • 双击右侧栏标签页关闭该页;双击标签内的关闭按钮等控件不会误触发
  • 异常时吞掉错误并退回 DSH 原生行为,不拖垮界面
  • 附带影响:焦点在会话区时,page.close 之外的 page.*(如 Ctrl+R / page.refresh)会解析到当前标签页目标,原本可能被忽略的操作最多变为刷新当前标签,README 说明不会造成新的破坏

环境要求

  • DeepSeek Harness >= 0.2.1-rc.5(需带 dockkit 右侧标签栏的 Web GUI)
  • 仅在 桌面客户端 中 Ctrl+W 语义由 DSH 处理;Web 页面里由浏览器自行处理快捷键
  • 分类:客户端;无宿主逻辑、无配置文件

安装与启用

Windows 示例(路径按本机 DSH 安装位置调整):

cd "/d/Program Files/DeepSeek Harness/resources/runtime/cli/bin"
./dsh.cmd plugin --profile desktop add "git+https://github.com/Aily-DSH/dsh-sidebar-tab-close.git"

本地开发可改用 file: 指向克隆目录(安装命令以 README 为准,勿凭插件名拼接错误 URL):

dsh plugin --profile desktop add "file:/D:/path/to/dsh-sidebar-tab-close"

装完后必须重启一次 DeepSeek Harness 客户端:客户端插件的 injections 在宿主启动时计算一次,不重启不会加载。

典型用法与验证

经过上面的安装与重启,可按 README 步骤自测:

  1. 打开会话,让右侧栏出现至少两个标签页
  2. 把焦点点回会话区(中间),按 Ctrl+W → 当前标签页关闭,窗口仍在
  3. 关到只剩一个不可关的标签,再按 Ctrl+W → 恢复原生行为(关窗口)
  4. 双击任意标签页本体 → 直接关闭

行为对照表(摘自官方文档):

场景 行为
侧栏展开、有可关标签、焦点在会话区 关闭当前活动标签页
侧栏展开、焦点在面板内 关闭当前活动标签页(与原生一致)
侧栏展开、唯一标签不可关 退回关窗口
侧栏收起 退回关窗口
双击标签页本体 关闭该标签页

适用场景与注意

适合经常在 DSH 桌面端开多个右侧栏标签、希望用 Ctrl+W 和双击快速关页、又不想改客户端安装包的用户。插件与 DSH 进程同权限运行,安装前建议浏览仓库源码并确认 MIT 许可证是否满足你的合规要求。

已知限制(资料原文):

  • 仅作用于右侧栏(dockkit 标签条);左侧工作区、底部面板不在范围内
  • 双击关闭依赖标签元素的 data-dockkit-tab / data-sidebar-right-tab;若 DSH 改动 DOM 标记,双击可能静默失效,Ctrl+W 仍走服务层
  • 与其它同样包装 focusedTarget 的插件叠加时,后加载者生效

卸载:

dsh plugin --profile desktop remove dsh-sidebar-tab-close

重启客户端后恢复原生 Ctrl+W 行为。

结尾

dsh-sidebar-tab-close 用最小侵入的方式,把「关标签」放在「关窗口」之前,并补上双击关标签,适合日常在右侧栏多开面板的 DSH 桌面用户。详情与 issue 见 GitHub 仓库,目录索引见 SkillHub 插件页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜