dsh-smooth-cursor-patched:DSH Web 平滑彗星光標(社區修補版)

前言

在 DSH Web 裏寫 prompt、回答提問卡片時,原生輸入光標是瞬時跳轉的:長段編輯、劃詞改選、軟換行後,光標位置與視覺反饋往往和預期不一致。社區裏已有 dsh-smooth-cursor 一類插件,把光標改成平滑滑動並支持強調色與粗細;上游自 2026-09-09 起未再更新,若干場景下仍有可復現問題。下面介紹維護者 ThinkofRain1213 發佈的修補分支 dsh-smooth-cursor-patched:在保留平滑光標體驗的前提下,修復空輸入、劃詞跟手、換行定位與滾動越界,並覆蓋提問卡片的作答輸入框。

這是什麼

dsh-smooth-cursor-patched 是面向 DeepSeek Harness(DSH) Web 端的客戶端插件,分類上屬於社區目錄中的「趣味換裝」。它源自 Lacquervii/smooth-cursor 的個人修補分支;維護者說明精力有限、可能斷更,上游若恢復維護會優先回歸上游。

一句話定位:爲 DSH Web 聊天輸入框(及 ask_user_question 交互卡片的作答框)提供平滑彗星光標,設置寫入瀏覽器 localStorage,並相對上游逐項修補已知缺陷。

相對上游修補了哪些場景

上游 dsh-smooth-cursor 在資料中列出的問題,本分支對應處理如下:

  1. 空內容與初次聚焦 — 空輸入或初次點擊時測量得到零高度矩形、光標不顯示;本分支對富文本輸入框做分層測量與空行兜底。
  2. 雙向劃詞跟手 — 正向拖選時固定取選區第 0 個矩形導致光標不跟鼠標;本分支按 selectionDirection 取首/末矩形,並把選區終點與方向納入重測。
  3. 軟換行與空行 — 空行上 range.getBoundingClientRect() 會回溯吸附,光標停在上一行末尾;本分支在軟換行與空段落處優先實測該行 <br> 高度。
  4. 長文本滾動 — 未裁剪時超界光標會漂到聊天區或工具欄上方;本分支按輸入框滾動視口剔除並裁切。
  5. 詢問界面 — 上游僅覆蓋 textarea[data-phase];本分支同時覆蓋提問卡片的作答輸入框。

此外新增 光標呼吸(閃爍):對齊 VS Code / 原生約 500ms 節拍(無操作 0.5 秒後呼吸,打字時常亮),可在插件設置中獨立開關。

核心功能

經 README 覈實,當前版本(npm 包 0.1.9-patched.6)對外能力包括:

  • 平滑光標 — 緩動滑向目標字符位置。
  • 光標呼吸開關 — 500ms 節拍,可關可開。
  • 外觀 — 色板強調色、自定義取色、光標粗細。
  • 持久化 — 偏好保存在 localStorage,改動即時生效。

靈感與實現邊界:平滑效果受 VS Code smooth cursor 概念啓發,並參考 Obsidian 社區 animated-cursor;渲染與 DSH Web 集成爲獨立重寫。許可證爲 MIT。

安裝與啓用

版本要求: DSH 0.1.6-alpha.2 及以後。插件配置頁依賴 @deepseek-ai/dsh-client-ui-plugin-manager(自該 alpha 起提供 plugins.bundle.config 槽位);0.1.5 及更早無插件管理界面,配置區不渲染,光標仍可按 localStorage 中已有偏好工作。

插件以 Web profile 安裝。推薦從 npm 安裝:

dsh plugin --profile web add dsh-smooth-cursor-patched

也可從 GitHub 指定倉庫安裝:

dsh plugin --profile web add github:ThinkofRain1213/dsh-smooth-cursor-patched

安裝後刷新或重啓 dsh web。在 插件 → 本插件 的 bundle 詳情頁配置:配置區位於描述與「包含的組件」之間。自本插件當前策略起,僅保留插件頁這一處配置入口(原「設置 → 通用」中的輸入光標行已移除,避免重複)。

典型用法

  1. 完成上述安裝並打開 DSH Web。
  2. 在任意受覆蓋的輸入框(主聊天 composer 或提問卡片作答框)點擊聚焦,平滑光標即生效。
  3. 打開 插件 → dsh-smooth-cursor-patched 配置區:
    - 開關光標閃爍;
    - 選擇強調色或自定義顏色;
    - 調整光標粗細。

無需重啓服務;偏好隻影響當前瀏覽器環境。

本地開發若需手動註冊 bundle,id / name 須與包名一致(例如 dsh-smooth-cursor-patched),勿改回上游 smooth-cursor / dsh-smooth-cursor,否則 loader id 衝突會導致 Failed to load plugins。開發構建命令見倉庫 README(pnpm run build 等)。

適用場景與注意

適合誰: 長期在 DSH Web 裏編輯 prompt、在提問卡片中作答,且希望輸入光標更跟手、視覺更統一(含呼吸節拍)的開發者或日常用戶。

生態說明: DSH 採用「一切皆插件」的擴展方式;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係,安裝來源以 npm 或 GitHub 倉庫爲準。

安全與維護: 插件隨 DSH Web 客戶端注入運行,權限邊界與當前 DSH 進程及瀏覽器環境一致;安裝前建議瀏覽 GitHub 倉庫 源碼與 MIT 許可證。倉庫 CI 覆蓋類型檢查、構建與註冊 id 校驗,暫無自動化測試;跨瀏覽器光標行爲需自行手動驗證。維護者註明 issue 回覆可能較慢。

結尾

dsh-smooth-cursor-patched 是在社區平滑光標方案上的修補延續:把 DSH Web 輸入體驗做成可配置的平滑彗星光標,並針對空輸入、劃詞、換行與滾動等邊界做了針對性修復。需要安裝或 issue 時,可訪問目錄頁 thinkofrain1213/dsh-smooth-cursor-patched 與源碼倉庫 ThinkofRain1213/dsh-smooth-cursor-patched。

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

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

小夜