前言¶
在 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 在资料中列出的问题,本分支对应处理如下:
- 空内容与初次聚焦 — 空输入或初次点击时测量得到零高度矩形、光标不显示;本分支对富文本输入框做分层测量与空行兜底。
- 双向划词跟手 — 正向拖选时固定取选区第 0 个矩形导致光标不跟鼠标;本分支按
selectionDirection取首/末矩形,并把选区终点与方向纳入重测。 - 软换行与空行 — 空行上
range.getBoundingClientRect()会回溯吸附,光标停在上一行末尾;本分支在软换行与空段落处优先实测该行<br>高度。 - 长文本滚动 — 未裁剪时超界光标会漂到聊天区或工具栏上方;本分支按输入框滚动视口剔除并裁切。
- 询问界面 — 上游仅覆盖
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 详情页配置:配置区位于描述与「包含的组件」之间。自本插件当前策略起,仅保留插件页这一处配置入口(原「设置 → 通用」中的输入光标行已移除,避免重复)。
典型用法¶
- 完成上述安装并打开 DSH Web。
- 在任意受覆盖的输入框(主聊天 composer 或提问卡片作答框)点击聚焦,平滑光标即生效。
- 打开 插件 → 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。