READMESource: main@2331446d
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
No comments yet. Be the first to write one.