dsh-power-menu-mac: One-Click Refresh, Restart, and Close for the macOS Desktop DSH Title Bar

前言

在 DeepSeek Harness(DSH)桌面版里改插件或改配置后,往往需要重启一次应用才能生效;而 macOS 上关窗口只是把应用收进 Dock,真正退出或重启通常要从菜单栏找「退出」。Windows 上已有社区插件 xichen-62/dsh-power-menu 把这类操作收到标题栏旁的电源菜单里;macOS 没有 taskkill 和 PowerShell 那套进程模型,需要单独实现。dsh-power-menu-mac 是上述 Windows 版的 macOS 移植(MIT),由 DSH 社区维护者 DDMUC 发布,在会话标题栏右上角提供电源按钮,把刷新、重启、定时与关闭集中到一处,纯本地运行、无外部依赖。

下面介绍插件定位、能力、安装步骤与使用注意。

这是什么

  • 名称:dsh-power-menu-mac(npm 包名与插件 ID 一致)
  • 维护者:DDDMUC(GitHub:DDDMUC/dsh-power-menu-mac)
  • 分类:客户端插件;package.json 中声明仅支持 darwin,非 macOS 宿主不会绘制按钮
  • 许可:MIT;思路与致谢对应 Windows 原版 xichen-62/dsh-power-menu
  • 运行环境:Node.js >= 22,DSH >= 0.2.0-rc.1;当前资料中包版本为 0.1.4

插件跑在 DSH Desktop 的 Host 进程里,通过分离的 helper 完成结束 Electron 主进程与重新拉起,重启成功时会用 lsappinfo 验证新进程已注册到 macOS 窗口服务器,而不是只看进程是否还在。

核心功能

界面入口

  • 有会话标题栏的页面:电源按钮位于标题栏图标行最右侧(顺序为「布局 / 侧栏 / 电源」)。
  • 插件管理、自动化任务等无会话标题栏的页面:按钮固定在窗口右上角,换页不消失。
  • 欢迎页与对话页共用同一挂载位置;空会话也会显示,样式透明、不破坏主题。

四项操作

菜单为白色圆角卡片,按破坏性从小到大排列:刷新、重启、定时、关闭。支持方向键、Home/End、Enter/空格与 Esc;点击后关闭/重启会显示半透明遮罩(「正在关闭DSH…」「正在重启DSH…」)。点击即执行,无二次确认;重启与关闭会中断正在生成的回答、工具与后台任务,刷新只重载界面、不中断后台任务。

动作 结果 需要手动重开?
刷新 只重载渲染层,应用与 Host 继续运行 否
重启 结束应用 → 等端口释放 → 重新拉起 → 验证窗口 否
定时(多种模式) 到点关闭、到点重启或立刻关再在 N 分钟后启动等 视模式而定
关闭 结束整个桌面应用,不重新启动 是

刷新在点按前会比对插件 bundle 文件是否在本页打开后被修改;若有改动会弹框列出相关插件,建议改走重启,避免 revision 不一致导致整组 client.js 加载失败。改完插件代码应重启,不要用刷新——DSH 的 versioned bundle 在磁盘文件变化后,刷新可能被宿主直接拒绝。

定时打开居中弹窗:填分钟数并选择「N 分钟后关闭」「N 分钟后重启」或「现在关闭,N 分钟后启动」;排定后按钮下方显示倒计时胶囊,页面刷新后可通过 /config 恢复定时状态。

配置与系统提示词

插件管理页中 dsh-power-menu-mac 行右侧有配置入口,路由为 #/panel/plugins/dsh-power-menu-mac/dsh-power-menu-mac。也可编辑 ~/.dsh/dsh-power-menu-mac/config.json(首次读取可自动生成),字段包括:

  • delayedRestartMinutes:定时弹窗默认分钟数(1–1440,非法值回落 10)
  • restartGuidance:是否在桌面宿主注入系统提示词(仅显式 false 关闭)
  • restartGuidanceText:自定义提示词正文(最长 2000 字)

默认注入的提示词大意是:DSH 的重启与关闭由用户通过右上角电源菜单完成,模型不要询问或主动提议。仅在桌面宿主生效;dsh web 无电源按钮,该段会被丢弃。

其它说明

  • 接口只监听本机回环地址并做同源校验;无遥测、无外部依赖。
  • 同一包也可用于 dsh web 部署,关闭/重启目标与就绪判据与桌面版不同;无头部署可设 DSH_POWER_MENU_NO_OPEN=1 关闭重启后自动 open 浏览器。

安装与启用

DSH 插件管理器安装依赖后不会自动写入 dsh.profile.bundles,装完本插件后必须补 bundles 并重启 DSH,否则客户端 bundle 可能 404。仓库提供 enable.sh(或 ./install.sh 一并处理)。

通过插件管理器(方式 B)

  1. 打开 DSH Desktop 的插件 / 插件市场。
  2. 添加插件,输入:
github:DDDMUC/dsh-power-menu-mac
  1. 安装完成后补写 bundles(不可省略)。在含 enable.sh 的目录执行(脚本随 GitHub 仓库或 Release 提供):
./enable.sh
  1. 重启 DSH,在插件市场 → 已安装中确认 dsh-power-menu-mac 为「启用中」。

命令行(方式 C)

若 dsh 不在 PATH,可使用应用包内 CLI:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
  plugin --profile desktop add github:DDDMUC/dsh-power-menu-mac
./enable.sh

然后重启 DSH。

一键脚本 ./install.sh(及 --mirror、--tgz 离线参数)见 GitHub README;脚本会查找 DSH 自带 dsh、安装依赖并补齐 bundles。

典型用法

  1. 在会话标题栏右上角点击电源图标。
  2. 选择 刷新、重启、定时 或 关闭。
  3. 仅改界面状态时用刷新;改插件或 profile 配置后用重启;临时离开或按计划重启可用定时;彻底退出用关闭。

若出现 bundle script … failed to load 且未改本插件,README 建议检查 ~/.dsh/profiles/desktop/node_modules 下各插件 lib/client.js 语法(例如 node --check),整组 bundle 共用一个 script 标签,任一插件语法错误会连坐报错。

适用场景与注意

适合:在 macOS 上日常使用 DSH Desktop,频繁改插件/配置、需要快速重载界面或重启而不想每次从菜单栏退出;需要定时关闭或延迟重启的场景。

注意:

  • 插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT 许可证,确认 helper 写 handoff、发信号等行为可接受。
  • 仅 macOS 桌面版有标题栏电源按钮;Linux/Windows 上不会加载 UI。
  • 社区插件目录 SkillHub 条目 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,安装来源以你信任的仓库为准。

结尾

dsh-power-menu-mac 把 macOS 上 DSH 的刷新、重启、定时与关闭收到标题栏电源菜单,并针对 bundle revision 与重启就绪做了额外校验;装完后务必 enable.sh 补 bundles 再重启。详情与架构说明见 GitHub 仓库 README,目录页:SkillHub - dsh-power-menu-mac。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye