dsh-auto-maximize:DSH 桌面版启动时自动最大化主窗口

前言

用 DeepSeek Harness 桌面版做长会话时,主窗口默认尺寸往往只占屏幕一部分。每次启动后手动点一次最大化,对习惯全屏工作区的开发者来说只是小动作,但在频繁重启、多 profile 切换时仍会重复消耗注意力。DSH 生态里窗口行为本可由插件扩展;本插件在不动 Electron 主进程的前提下,在 host 加载阶段用系统级能力等价于「点一次最大化按钮」,面向 desktop profile 及基于 Electron / 系统窗口运行 DSH 的场景。

这是什么

dsh-auto-maximize 由维护者 FideFeiPlane 发布,分类为客户端插件。一句话定位:DeepSeek Harness 桌面版插件,启动时自动最大化主窗口,效果等同于手动点击最大化按钮。包版本 1.2.0,许可证 MIT;GitHub 镜像仓库为 FideFeiPlane/dsh-auto-maximize,主仓库在 Gitee。

插件是 host-only:随桌面版 host 进程在应用启动时加载。host 是纯 Node 子进程(ELECTRON_RUN_AS_NODE=1),拿不到 BrowserWindow,因此不能调用 BrowserWindow.maximize();实现路径是系统级窗口句柄上的「最大化」,而非 Electron API。

核心功能

平台策略(尽力而为)

失败只记日志,不 crash host。

平台 做法 依赖与备注
Windows 优先进程内 FFI:用 DSH 自带的 koffi 调 Win32 ShowWindow(hwnd, SW_MAXIMIZE);失败则回退 pwsh 7 或 Windows PowerShell 5.1 子进程 koffi 随 DSH 安装;无需额外权限
macOS 将窗口设为主屏可视区大小;失败时再点击绿色 AXZoomButton 需 osascript;须授予「辅助功能」
Linux wmctrl 或 xdotool 设置 _NET_WM_STATE_MAXIMIZED 工具通常需自行安装

Windows 上通过进程镜像路径与同可执行文件窗口匹配定位主窗口;macOS/Linux 可用配置项 processName 覆盖进程名。

行为边界

  • 仅在 desktop profile 有意义;web profile 无窗口,插件会安静跳过。
  • 只在启动挂载时执行一次,不会跟踪会话中用户手动改过的窗口状态。
  • 可通过 enabled: false 整体禁用;Windows 可用 engine 在 auto / ffi / powershell 间排查。

安装与启用

推荐通过插件市场 / npm(发布后可用):

dsh plugin --profile desktop add dsh-auto-maximize

本地开发可在 profile 目录(如 ~/.dsh/profiles/desktop)的 package.json 中以 file: 依赖引用,并把 dsh-auto-maximize 加入 dsh.profile.bundles,执行 pnpm install 后重启 DeepSeek Harness 桌面版。

卸载时从 dependencies 与 dsh.profile.bundles 两处移除该包,再 pnpm install 并重启应用。

典型用法:配置

在 profile 的 cordis.patch.yml 中覆盖 auto-maximize 条目即可。下面示例展示常见字段(默认值以 README 为准):

- id: auto-maximize
  config:
    enabled: true
    engine: auto
    timeoutMs: 5000
    processName: 'DeepSeek Harness'
    logKeepRuns: 5
    logKeepLines: 200
配置 默认 说明
enabled true false 时插件不执行
engine auto Windows:auto / ffi / powershell
timeoutMs 5000 启动后等待窗口出现的上限(毫秒)
processName 可执行文件名 macOS/Linux 定位窗口
logFile ~/.dsh/auto-maximize.log false 关闭;字符串可自定义路径
logKeepRuns / logKeepLines 5 / 200 日志轮转

macOS:须在「系统设置 → 隐私与安全性 → 辅助功能」中勾选 DeepSeek Harness,授权后重启;未授权时 host 日志会有 dsh-auto-maximize 相关指引。

验证无需重启 DSH:在「设置 → 插件」中关闭再打开该 bundle,相当于重新挂载并再跑一次最大化;诊断可看 ~/.dsh/auto-maximize.log(Windows 为 %USERPROFILE%\.dsh\auto-maximize.log)。

适用场景与注意

适合希望桌面版一打开就占满工作区的开发者;不适合需要固定小窗或 web-only profile。

插件以当前 DSH 进程权限运行,安装前建议查看仓库源码与 MIT 许可证。Linux 需自备 wmctrl 或 xdotool;多开实例时 Windows 按镜像与父进程 PID 区分,macOS/Linux 多窗口时可用 processName 区分。

DSH 社区插件目录(如 skillhub 上的条目)由社区维护,与 DeepSeek / 幻方无官方从属关系;安装命令以文档原文为准,勿自行拼接未在资料中出现的 github:owner/repo 形式。

结尾

dsh-auto-maximize 把「每次启动点最大化」收成一次配置:host 侧系统调用、跨平台回退与可关断的日志,默认即可用,按需改 cordis.patch.yml。进一步了解可访问插件目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/FideFeiPlane/dsh-auto-maximize
  • GitHub:https://github.com/FideFeiPlane/dsh-auto-maximize
羽毛球分组比赛记分
小程序二维码

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

Xiaoye