dsh-settings-button: Persistent settings entry next to the account in the sidebar

前言

在 DeepSeek Harness(DSH)Web 界面里,设置面板通常藏在侧栏底部的账号菜单里:先点开头像,再选「设置」。日常改模型、快捷键或界面选项时,多一步菜单操作并不致命,但路径偏长。若你希望在侧栏底部账号一行旁边直接看到「设置」,点一次就打开面板,lindingkao/dsh-settings-button 就是面向这一点的客户端插件。

这是什么

dsh-settings-button 由社区维护者 lindingkao 发布,分类为客户端插件。它在 DeepSeekRuntime(DSH)Web UI 侧栏底部的账号头像右侧,注入一个与用户栏同高的「设置」按钮(齿轮图标 + 文案),单击优先直达设置面板,而不必先展开账号菜单。

核心功能

下面介绍 README 中已说明的行为,均可在仓库文档中核对。

界面与交互

  • 按钮紧贴账号头像(用户栏)右侧,高度与用户栏一致,内容为齿轮 + 「设置」文案。
  • 图标复用宿主自带的 IconSettingsOutlineMedium(与账号菜单里的设置项同一份矢量),通过 currentColor 随主题着色。
  • 点击后优先派发宿主登记的 settings.open 快捷键命令,直达 shell 的 actions.open(),不依赖 DOM 模拟点击;仅在命令不可用(宿主未注册或注册表被收紧)时,才回退为短暂打开账号菜单并点其中的「设置」项;回退时菜单在注入的 dsh-sb-suppress-menu 下不可见,视觉上仍是设置面板直接出现。
  • 侧栏收成 56px 窄轨道时按钮自动隐藏,设置仍可从账号菜单进入。
  • 若宿主版本已自带设置触发按钮,插件不注入第二个按钮,只把自带按钮排到行尾。
  • 卸载插件会移除按钮、样式与临时类。

打开设置的路径与兼容

主路径是 @deepseek-ai/dsh-client-ui-settings-general 在 sidebar.settings 座位被注入时注册的 settings.open 命令;插件通过 ctx.shortcuts.registry.invoke 派发。命令不可用时自动走账号菜单回退,按钮不会因此失效。

按钮定位依赖 DSH 0.2.x 的两条界面约定:侧栏脚部行 CSS Modules 类名以 _triggerRow 结尾;账号菜单按钮的 aria-label 为「账号菜单」(回退路径)。结构变化时定位失败则静默不做改动,不破坏宿主界面。

实现要点(便于排查)

  • 按钮绝对定位在脚部行右端,行上用 padding-right 预留宽度,避免覆盖头像栏。
  • 文案取自 settings 命名空间的 trigger 键,与账号菜单设置项一致,跟随界面语言。
  • 派发命令前会读当前弹窗名:仅在无弹窗时调用,避免在 modal === "settings" 时误关已打开的设置;命令缺失或派发后 240ms 内面板仍未出现才回退菜单。
  • MutationObserver 合并 120ms 内重渲染,仅在尺寸真正变化时写布局。
  • 检测「宿主已自带设置按钮」时会排除本插件注入的按钮,避免删除-重建循环。

当前 package 版本为 0.2.0,许可证 MIT。

安装与启用

先做 profile 选择,再用官方文档中的 add 命令把插件写入 profile 依赖;装完重启 DSH 或刷新页面即可。

从 GitHub 安装(推荐):

dsh plugin --profile <profile> add github:lindingkao/dsh-settings-button

等价的完整写法:

dsh plugin --profile <profile> add https://github.com/lindingkao/dsh-settings-button.git

本地目录安装(开发用):

dsh plugin --profile <profile> add /path/to/dsh-settings-button

dsh plugin ... add 会把依赖写进 profile 的 package.json,并自动把声明了 dsh.bundle 的依赖加入 dsh.profile.bundles。

注意:dsh plugin ... install 转发的是 pnpm 的 install(安装已有依赖),不接受包名,不要写成 install <包>;裸 lindingkao/dsh-settings-button 也不是有效目标,须带 github: 前缀或完整 git URL。本地目录安装时 profile 以 link:/file: 引用该目录,不要删除或移动该目录,否则插件会失效。

典型用法

安装并刷新后无需额外配置:在侧栏展开状态下,侧栏底部账号一行右侧应出现齿轮 + 「设置」。单击即尝试打开设置面板。

若侧栏已收成 56px 轨道,按钮会隐藏;此时仍从账号菜单进入设置。若你的 DSH 已自带同类按钮,插件不会重复注入,只会调整自带按钮位置。

适用场景与注意

适合经常在 Web UI 里改设置、希望减少「账号菜单 → 设置」路径的 DSH 用户。插件属于客户端注入类扩展,以当前 DSH 进程权限在浏览器侧运行;安装前建议浏览 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境与安全要求。DSH 侧栏 DOM 或类名在 major 升级后可能变化,届时插件可能静默失效,需关注仓库更新。

DeepSeek Harness 生态强调「一切皆插件」;社区插件目录(SkillHub 等)为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-settings-button 在侧栏账号旁提供常驻设置入口,优先走宿主 settings.open 命令,并在窄侧栏与已有自带按钮场景下做了退让。目录页:https://www.skillhub.cn/plugins/lindingkao/dsh-settings-button;源码与说明:https://github.com/lindingkao/dsh-settings-button。

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

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

Xiaoye