dsh-plugin-settings-float:可拖拽、可缩放的设置浮窗

前言

在 DeepSeek Harness(DSH)里改设置时,原生界面是居中模态框加全屏遮罩:对话被盖住,窗口也不能拖走。若你一边对照聊天记录一边调插件或模型参数,只能反复关设置、再打开,效率很低。下面介绍社区插件 dsh-plugin-settings-float(维护者 xuanyang905,分类:客户端):在不改上游 bundle 的前提下,把同一套设置 React 树从模态里「抬」成可拖动、可改大小的浮窗,去掉遮罩后聊天仍可看、可点。

这是什么

dsh-plugin-settings-float 是 DSH 客户端插件(版本 0.1.0,MIT)。它针对当前 DSH 设置外壳做 DOM 层增强:不修改官方打包产物;若 DSH 升级改了设置页 markup,插件可能不再生效,设置页会退回原生居中模态——作者将其定位为便利层,而非 fork。

仓库:GitHub - xuanyang905/dsh-plugin-settings-float
目录页:SkillHub 插件页

核心功能

已核实能力如下(均来自项目 README):

  • 可拖动:抓住导航标题或内容区标题,把窗口移到任意位置。
  • 八向缩放:上、下、左、右四条边与四个角均可拖;对边保持锚定。
  • 聊天保持可用:去掉深色遮罩, overlay 不再吞指针事件,浮窗后的对话可见且可点击。
  • 记住几何:位置与尺寸按浏览器 profile 写入 localStorage(键名:dsh.settings-float.pos.v1、dsh.settings-float.size.v1)。
  • 重置快捷:双击标题恢复默认位置(右侧、垂直居中);双击缩放手柄恢复配置的默认尺寸。
  • 可配置:默认宽高、最小尺寸、总开关、可选「点外侧关闭」等,通过 DSH 插件配置卡片暴露。

隐私方面:无网络请求、无 host 侧改动、无遥测;仅上述两个 localStorage 键。

安装与启用

1、在指定 profile 下安装(命令以 README 为准):

dsh plugin --profile <your-profile> add dsh-plugin-settings-float

2、确认 profile 的 package.json 里 bundles 已包含该包(从 GUI 插件页安装时通常会自动写入):

"dsh": {
  "profile": {
    "bundles": [ "...", "dsh-plugin-settings-float" ]
  }
}

3、重启 DSH host。客户端 bundle 在启动时组装,仅刷新页面不够。

插件声明需要 web 能力表面(dsh.client platform web),引擎要求 DSH >=0.2.0-rc.2;README 写明在 DSH 0.2.1-rc.3(桌面与 web profile 共用同一设置外壳)上验证过。

典型用法

打开设置后,操作与原生关闭方式(Esc、关闭按钮)不变,额外支持:

操作 效果
拖动导航标题 / 内容标题 移动窗口
拖动任一边或角 缩放(受最小尺寸与视口限制)
双击标题 位置恢复默认
双击缩放手柄 尺寸恢复为配置的默认值
Esc / ✕ 关闭设置(与原生一致)

配置可在 Settings → Plugins → Settings Float 中改,或在 profile patch 里写:

- id: settings-float
  name: dsh-plugin-settings-float
  config:
    enabled: true
    defaultWidth: 760
    defaultHeight: 720
    minWidth: 480
    minHeight: 320
    closeOnOutsideClick: false
配置项 默认 含义
enabled true 为 false 时使用原生居中模态
defaultWidth / defaultHeight 760 / 720 初始尺寸(用户改过大小后以个人记录为准)
minWidth / minHeight 480 / 320 可拖到的最小宽高
closeOnOutsideClick false 为 true 时点击浮窗后的聊天区域会触发 Escape 关闭设置

适用场景与注意

适合谁:经常在 DSH 里一边看对话一边改设置、调插件配置的开发者或重度用户;需要 web 客户端场景。

使用前请知悉:

  • 插件与当前 DSH 进程权限一致,安装前建议自行查看 源码与 LICENSE,确认符合你的安全与合规要求。
  • 实现依赖 role="dialog" 及设置页子结构识别;上游 DOM 大改时可能静默失效,不会破坏原生设置页。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文介绍的是社区维护的客户端增强,非官方应用商店条目。

结尾

dsh-plugin-settings-float 把设置从全屏遮罩模态改成可拖、可缩的浮窗,并用本地存储记住布局,适合需要「设置与聊天同屏」的 DSH 使用方式。进一步了解实现与开发测试命令见 GitHub README;安装入口也可从 SkillHub 目录页 跳转仓库。

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

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

小夜