xk150424/dsh-settings-float ↗★ 0

dsh-settings-float

把 DSH 的设置弹窗变成可拖动浮窗 — float the DeepSeek Harness settings modal: drag it anywhere, the conversation stays usable behind it. 适合需要边看会话边调整设置的用户,可自由拖动并记忆位置。

パッケージ
dsh-settings-float
互換性
未検証
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/10/25

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xk150424/dsh-settings-float

ドキュメント

README 全文を読む ↗

dsh-settings-float · 浮窗设置

Float the DeepSeek Harness settings modal: drag it anywhere — the conversation behind stays usable.

把 DSH 的「设置」弹窗变成可拖动的小窗:遮罩不再盖住会话,面板可以拖到屏幕任意位置(顶部除外),位置记在浏览器里。

效果

  • 点侧栏底部「设置」,面板不再居中盖满,而是一个带阴影的浮窗,会话在它后面照常可点
  • 按住面板顶部(标题区,或左侧分类栏的上半部)拖动;位置存 localStorage,下次打开还在原位
  • 左右和底部可以拖出屏幕,只保证面板至少还有 80px 露在屏幕内,随时能抓回来
  • 顶部锁在视口内。拖动区就在顶部——一旦顶部滑出屏幕,就再也抓不回来了(2026-10-25 实测踩过这个坑,所以只限制这一个方向)
  • 点面板右上角的关闭键,或按 Esc,照常关闭
  • 卸载即恢复官方弹窗:样式、拖动监听、位置变量全部撤掉

安装

从 GitHub 装:

dsh plugin --profile desktop add github:xk150424/dsh-settings-float

或从本地目录装:

dsh plugin --profile desktop add /abs/path/to/dsh-settings-float

装完重启 DSH——新增的插件行不会热加载。客户端代码刷新页面后注入。

兼容性

  • DSH 0.2.1-rc.2 实测通过(桌面端)
  • 锚的是运行版产品自带的 div[data-shortcut-modal="settings"] 属性,不依赖 CSS Modules 哈希类名
  • 纯客户端插件,不需要任何额外服务或权限

实现

  • CSS:外层 overlay 透明且 pointer-events: none;面板改成 position: fixed + 固定尺寸 + 圆角阴影 + 限最大尺寸
  • JS:面板挂载时绑指针拖动,位置写进 --dsh-sf-x / --dsh-sf-y 两个 CSS 变量
  • 边界:顶部压在 EDGE(8px)上不许出界;左右和底部只要求留 KEEP_VISIBLE(80px)可见
  • 加载时钳制:localStorage 里的旧位置如果已经超界(换过分辨率、缩过窗口),先夹回可用范围再应用

不改官方源码,不读写文件,不发网络请求。

已知限制

  • 官方若改掉 data-shortcut-modal="settings" 这个属性,插件会失效——失效时只是回到官方弹窗,不会坏
  • 尺寸固定 880×640,暂不支持拖拽缩放
  • 遮罩隐藏后,官方「点外面关闭」的行为随之消失,用关闭键或 Esc

License

MIT