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
羽毛球分组比赛记分
小程序二维码

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

小夜