前言¶
在 DeepSeek Harness Desktop 里日常开发时,窗口能否像普通 macOS 应用一样拖动、双击标题栏放大,直接影响多窗口并排时的效率。部分 DSH Desktop 构建会忽略 -webkit-app-region: drag,壳层自带的 [data-window-drag] 区域无法拖动主窗口,有时只能靠交通灯或完全不能移动。dsh-window-drag 是社区维护的客户端插件,用渲染进程里的 window.moveBy() / moveTo() / resizeTo() 绕过 CSS 拖拽区,让 Electron 主窗口恢复常见标题栏行为。下面介绍它的定位、能力与安装方式。
这是什么¶
dsh-window-drag 由 angls4 维护,归类为客户端插件。一句话:在 macOS 上的 DSH Desktop 中恢复「拖空白标题区移动窗口」和「双击标题区缩放(占满屏幕工作区,再双击还原)」。Windows、Linux 与普通浏览器标签页中插件不生效(通过 preload 写入的 data-platform="darwin" 门控);全屏时也会禁用。
核心功能¶
拖拽区域¶
- 顶部 48px 标题条(与壳层
--dsh-frame-top-clearance一致),全宽可拖。 - 侧边栏头部块(300×104px)也可拖。
插件不拦截窗口最边缘的原生 resize 拖拽(由 macOS 窗口服务器处理,可能移出屏幕或跨显示器);只覆盖上述顶条与侧栏头。
双击缩放¶
双击上述区域时,按 macOS 习惯在工作区内放大窗口;再双击恢复之前的 bounds。若已放大状态下开始拖拽,会先缩回先前尺寸并以光标为中心(受屏幕边界约束),再继续拖动;此时双击同样可还原。
启动 rescue¶
若上一会话因原生边缘拖拽等原因导致窗口完全在屏幕外,插件在启动时会把窗口拉回屏幕工作区。
不抢交互的元素¶
按钮、链接、标签页、输入框、contenteditable、菜单、对话框,以及带 data-no-window-drag 的元素不会被捕获,点击仍走原有逻辑。
安装与启用¶
在 DSH Desktop 中打开 Settings → Plugins(插件管理器),从以下 bundle 安装:
github:angls4/dsh-window-drag
资料中也说明可 clone 仓库后在插件管理器里对 dsh-window-drag/ 目录使用「Install bundle…」;安装后立即生效,无需重启。卸载时在插件管理器中移除 bundle 即可。
环境要求(README 原文):
- DeepSeek Harness Desktop(插件针对 0.2.1-rc.5 开发)
- macOS;其他平台不受影响(插件处于 inactive 状态)
典型用法¶
本插件无单独配置项或 CLI:安装并在 macOS 的 DSH Desktop 中启用后,在顶栏空白处或侧边栏头部按下拖动即可移动窗口;在同一区域双击即可在工作区内缩放或还原。无需在设置里填写额外字段。
实现上属于 Cordis bundle:cordis.patch.yml 插入 window-drag 行,client.js 注册 Client 模块并挂载指针监听;禁用或卸载时会移除全部监听。
适用场景与注意¶
适合: 在 macOS 上使用 DSH Desktop,且遇到标题栏拖不动、无法双击缩放的用户。
务必注意:
- 插件在当前 DSH 进程权限下运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。
- 仅 macOS DSH Desktop;不要在 Windows/Linux 上期待同等行为。
- 社区插件目录 SkillHub 条目 为独立生态站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
结尾¶
dsh-window-drag 用客户端侧窗口 API 补上了部分构建里缺失的标题栏交互,对 macOS 上长时间开 DSH Desktop 的开发者是小幅但实用的修复。更多信息见目录页与源码仓库:
- 目录页:https://www.skillhub.cn/plugins/angls4/dsh-window-drag
- GitHub:https://github.com/angls4/dsh-window-drag