DeepSeek Harness (DSH) 支持通过插件扩展功能。浏览器原生的 contextmenu 手势通用但功能单一,难以满足在树状视图中快速执行特定操作的需求。@nacocx/dsh-ui-context-menu 是一个客户端插件,它用 DSH 自身的功能策略替代了浏览器默认的右键菜单,为工作区、会话、文本区域提供定制化的交互入口。
核心功能¶
插件通过监听右键事件,根据指针位置和上下文内容分发不同的操作菜单:
-
工作区行
针对真实 Workspace 行,提供文件管理器打开、重命名和删除操作。重命名与删除通过插件对话框确认,并提交到宿主 API。 -
会话行
针对非空白 Session 行,提供重命名、分叉(Fork)和归档操作。分叉会复刻标题递增逻辑并打开子会话。 -
空白处
在无选区、无控件的空白处右键,唤起应用菜单:创建新会话、创建新工作区或打开设置。 -
选中文本
针对选中的文本,提供复制、剪切、搜索(填入搜索框)以及浏览器搜索。 -
文本框
在输入框内右键,提供以粘贴优先的编辑菜单(复制、剪切、粘贴、全选)。
安装¶
通过官方插件注册表安装:
dsh plugin --profile web add @nacocx/dsh-ui-context-menu
安装后需重启 DSH 进程(dsh --profile web)以加载插件。该插件声明了 dsh.bundle,会自动将 cordis.patch.yml 层加入 profile。
配置与使用¶
插件的所有功能都可以独立开关。进入 设置 → 插件,找到「右键菜单」卡片,即可为每个区域(工作区行、会话行、空白处、文本框、选中文本)配置开关。
关闭某个区域的开关,该区域将恢复浏览器原生右键菜单,效果等同于插件未安装。配置策略保存在浏览器本地存储中。
注意事项¶
- 菜单锚点位置:工作区行和会话行的菜单锚定在行自带的省略号按钮上,而非指针的精确坐标。只有覆盖层(如空白处菜单、文本搜索菜单)会锚定在指针处。
- 权限依赖:粘贴操作和浏览器搜索功能依赖浏览器或 WebView 的剪贴板权限。如果权限被拒绝,操作可能无效。
- 回退机制:浏览器搜索和文件管理器打开功能仅在宿主机提供原生打开器时有效。对于非回环客户端,这些功能可能会回退到默认行为(如锚点点击)。
- 配置同步:配置保存在浏览器本地存储,不跨浏览器同步。清除浏览器数据会导致配置重置。
- 依赖范围:插件依赖
@deepseek-ai/dsh-client-ui-workspace范围(版本要求见文档),以确保 UI 结构兼容。
总结¶
该插件通过拦截右键事件,将分散的操作集中到统一的上下文菜单中,减少了切换工具和寻找菜单的步骤。作为客户端插件,它仅通过 GUI 同源的 /api 网关与宿主交互,不涉及密钥或敏感数据的读写。适合希望增强 DeepSeek Harness 日常交互效率的用户。