dsh-jump:DeepSeek Harness Web 界面的键盘跳跃导航

前言

DeepSeek Harness(DSH)的 Web GUI 里,侧栏项目与会话行、Composer 输入区、各类按钮和链接往往分散在页面上。纯鼠标点选或 Tab 链式聚焦,在频繁切换会话、改设置、回到输入框时成本偏高。社区里已有 Vimium 一类「先快捷键、再字母标签」的浏览器习惯;DSH 自身是插件化宿主,客户端能力也可以做成独立插件。下面介绍维护者 Lionad-Morotar 发布的 dsh-jump:在 Harness Web 界面里用组合键进入标签模式,再敲字母标签即可点击或聚焦目标元素。

这是什么

dsh-jump 是 DSH 的客户端插件(npm 包名 dsh-jump),面向 DeepSeek Harness Web GUI 提供键盘跳跃导航:按下「点击」或「聚焦」组合键后,视口内可交互元素会被打上字母标签,再输入标签即可对该元素执行点击或聚焦。

仓库:Lionad-Morotar/dsh-jump。目录页:SkillHub 插件条目。当前 package.json 版本为 0.1.2,许可证 MIT。engines.dsh 要求 >=0.2.0-rc.2 且 <0.3.0-0;安装前请确认本机 DSH 版本落在该区间内。

核心功能

两种模式与默认快捷键

  1. 点击模式:默认 macOS 为 Cmd+H,非 Mac 为 Ctrl+H。命中非文本输入类控件时,走完整的合成指针/鼠标/点击序列;文本输入面仍会被聚焦并把光标落到草稿末尾。
  2. 聚焦模式:默认 macOS 为 Cmd+U,非 Mac 为 Ctrl+U。对非文本输入类控件仅调用 focus();文本输入面同样聚焦并处理光标位置。
  3. 退出:Esc、任意 meta 组合键、或再按一次当前模式的激活键,均可退出标签模式。

激活时会先 blur 当前焦点再采集标签,避免焦点留在输入框时下一击被输入法吃掉。标签由客户端入口以 overlay 渲染;模式激活期间 keydown 由状态机消费,不会在已聚焦输入框里「漏打」字母。

哪些元素会被打标签

README 归纳了三类,均来自 Harness 里真实难以触达的元素:

  • 原生控件:a[href]、button、input、select、textarea、summary,以及带 tabindex 的元素。
  • Harness 实际渲染的 ARIA 部件角色:button、link、tab、treeitem(侧栏项目与会话行)、option、menuitem* 系列、checkbox、radio、switch、slider、spinbutton 等;结构性角色(如 row、columnheader) deliberately 不标。
  • 可编辑宿主(contenteditable 且非 false)以及 textbox / searchbox / combobox 角色——Composer 是 Lexical 管理的 div[contenteditable=true][role=textbox],无原生标签匹配,靠这一条可达。

标签字母规则

前九个标签为 a s d f g h j k l;超过九个时整轮改用等长双键标签(如 as、ad);超过 81 个则升到三键,避免短标签抢占长标签的首击。

快捷键可改、存浏览器本地

设置 → 「跳跃导航」(注册 order 为 25,在设置导航中的位置由该值决定)。点选快捷键录制区后按下新组合键即可生效,无需刷新。绑定保存在浏览器 localStorage 键 dsh-jump:bindings:v1,不写进包配置。产生字符的键必须带 ⌘、⌃ 或 ⌥;Insert、F1、Home 等不产生字符的键可不配修饰键——焦点在可编辑区域时裸键不触发跳跃,带修饰键的组合仍生效。

macOS 输入法切换(可选)

macOS 上激活时会记住当前输入源并切到美式键盘(com.apple.keylayout.ABC),在 Esc、完成一次标签、切应用或插件卸载时恢复。页面通过宿主 POST /api/dsh-jump/ime 调用本机 im-select;二进制缺失或宿主无 web 服务时跳过,标签模式仍可用。im-select 需自行安装(README 示例:brew install im-select),不是 npm 包依赖。

v1 边界(使用时需知晓)

  • 标签在激活瞬间快照;激活后新出现或移动的元素需重新激活才有标签。
  • Web 与 desktop 都会加载该插件,但 overlay 针对 Web GUI(README 后续章节有 platform 说明,v1 以 Web 为主场景)。

安装与启用

从 npm 安装(推荐)

官方命令如下。安装后需重启对应 profile;bundle patch 会注册 Loader 行,一般不必手改 cordis.patch.yml。

dsh plugin --profile web add dsh-jump

跟踪源码 checkout

在 profile 里用 link: 或 git URL 依赖后执行 dsh plugin --profile web install 并重启 DSH。README 亦给出从 GitHub 添加的方式:

dsh plugin --profile web add github:Lionad-Morotar/dsh-jump

link: 路径相对 ~/.dsh/profiles/web 解析,需按本机 checkout 位置调整。

手动 patch

向 profile 的 cordis.patch.yml 追加(文件顶层须保持 YAML 数组):

- insert:
    - id: jump
      name: 'dsh-jump'

典型用法

  1. 确认已安装并重启 web profile 后,打开 DSH Web GUI 任意页面。
  2. 按 Cmd+H(Mac)或 Ctrl+H(非 Mac)进入点击标签模式;侧栏与会话行、Composer、按钮等可见可交互目标应出现字母 overlay。
  3. 输入 overlay 上对应标签(单键或双键/三键,视元素数量而定),目标被点击或聚焦(文本区则聚焦且光标到草稿末尾,除非已有 caret)。
  4. 需要只聚焦、不触发完整点击序列时,改用 Cmd+U / Ctrl+U 进入聚焦模式,再敲标签。
  5. 按 Esc 退出。若需改快捷键,打开设置里「跳跃导航」重新绑定。

适用场景与注意

适合:习惯键盘驱动、希望在 Harness Web 里少移鼠标完成侧栏切换、设置项、Composer 聚焦的 DSH 用户;分类上属于客户端 UI 能力,与宿主「一切皆插件」的方向一致。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以 npm 或你信任的 GitHub 仓库为准。

注意:

  • 插件以当前 DSH 进程权限在浏览器侧注入 DOM overlay、使用 localStorage,并在 macOS 上可能请求宿主切换输入源;安装前应阅读源码与 MIT 许可证,并核对 dshWorkshop.permissions(如 web:index-inject、dom:overlay、browser:local-storage、host:input-source)。
  • 默认 Cmd+H / Cmd+U 与宿主保留主快捷键可能冲突,README 说明因此由插件自持监听;改绑后仍须遵守「可打印字符须带修饰键」等规则。
  • 星标与兼容性列表以仓库与 npm 为准;勿假设未在文档出现的配置项。

结尾

dsh-jump 把「组合键 → 字母标签 → 点击或聚焦」接到 DeepSeek Harness Web GUI 上,并覆盖 Composer、侧栏 treeitem 等 Harness 特有结构。需要安装命令与行为细节时,以 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/Lionad-Morotar/dsh-jump
  • GitHub:https://github.com/Lionad-Morotar/dsh-jump
羽毛球分组比赛记分
小程序二维码

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

小夜