lisniuse/dsh-modal-enhancer ↗★ 0
dsh-modal-enhancer
Add drag, eight-way resize, pin, maximize, backdrop controls, and persistent state to DeepSeek Harness web modals.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lisniuse/dsh-modal-enhancer说明文档
阅读完整 README ↗dsh-modal-enhancer
简体中文 · English
这是一个客户端 Cordis 插件,无需修改 DeepSeek Harness Web GUI 源码, 即可为所有模态窗口增加接近桌面窗口的操作能力。
功能
- 拖动窗口:按住顶部独立拖动条移动弹窗。
- 八向缩放:四条边和四个角都可以用鼠标调整窗口大小。
- 固定 / 取消固定:固定后,点击窗口外部不会关闭弹窗;关闭按钮和
Esc键仍然可以正常关闭。 - 最大化 / 还原:将弹窗扩展到接近整个视口,并可恢复最大化前的位置和尺寸。
- 取消遮罩与磨砂:同时移除暗色遮罩和背景模糊;弹窗会增加一层浅阴影, 以便继续和页面背景区分。
- 逐窗口状态持久化:每个弹窗会分别记住位置、宽度、高度、最大化、固定和 遮罩状态,关闭浏览器后再次打开仍会恢复。
- 总开关:可在 设置 → 通用 → 弹窗增强 中启用或停用整个插件。
插件通过稳定的无障碍属性
[role="dialog"][aria-modal="true"] 发现弹窗,不依赖可能变化的 CSS Module
哈希类名。因此设置窗口、创建工作区、模型与智能体预设编辑器、风险确认窗口,
以及其他使用相同约定的 Harness 弹窗都可以被增强。
操作说明
| 控件 | 功能 |
|---|---|
| 顶部拖动条 | 移动弹窗 |
| 上、下、左、右四条边 | 单独调整宽度或高度 |
| 四个角 | 同时调整宽度和高度 |
| 图钉 | 切换点击窗口外部是否关闭 |
⛶ / ❐ | 最大化 / 还原 |
◐ / ◌ | 移除 / 恢复视觉遮罩和磨砂 |
缩放热区会略微跨过弹窗边界,便于鼠标抓取。弹窗处于最大化状态时,会暂时禁用 拖动和缩放;还原后即可继续操作。
状态持久化
插件按照以下优先级识别“同一个弹窗”:
- 弹窗显式提供的
data-dshme-state-key; aria-label;aria-labelledby指向的标题文本;- 弹窗内部的第一个标题元素。
状态保存在浏览器 localStorage 中,键名前缀为
dshme.dialog-state.v1:。如果更换显示器或浏览器视口尺寸发生变化,插件会在
恢复时重新约束窗口位置和大小,确保仍有一部分窗口处于可操作区域。
停用或卸载插件时,当前页面中注入的控件、样式类、事件监听器和行内几何样式 都会被清理;已经保存的窗口状态会保留,方便下次重新启用时继续恢复。
安装
可直接使用的单文件插件位于 dist/plugin.js。将该文件的完整内容
作为动态 cordis_define 插件的 code.client 函数体传入即可。文件以
return { ... } 开头,是一个完整的 JavaScript 函数体。
本插件不需要修改 Harness 源码,不需要运行 pnpm install,也不需要重新构建
Web 应用或重启服务。动态插件和智能体预设两种安装方式请参阅
docs/install.md。