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。

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

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

Xiaoye