dsh-window-drag:在 DSH Desktop(macOS)恢复标题栏拖拽与双击缩放

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜