前言¶
DSH 的理念是“一切皆插件”。在实际使用 DSH Web GUI 时,常见做法是通过 dsh web 启动本地 HTTP 服务,再手动打开浏览器访问。对长期在本地使用 DSH 的人来说,这个流程会多一步:每次都要记住端口、打开浏览器、管理标签页。
dsh-desktop-shell 解决的是这个入口问题:dsh web 启动后自动弹出 Electron 窗口,关闭窗口时不退出 dsh 进程,而是隐藏到系统托盘;需要从托盘退出时,再结束整个 dsh web 进程。
这是什么¶
dsh-desktop-shell 是一个 MIT 许可的 DSH 桌面外壳插件。它安装到 web profile 后,让 dsh web 具备 Electron 桌面窗口入口,同时保持 DSH 现有 HTTP 服务不变。
已核实事实列出:dsh 引擎零改动。
仓库地址为:
https://github.com/Funnyvalentine00/dsh-desktop-shell
已核实资料未单列维护者字段,仅仓库地址指向 Funnyvalentine00。
核心功能¶
下面介绍已核实的功能:
dsh web启动后自动弹出 Electron 窗口,并加载 DSH 现有 HTTP 服务。- 关闭窗口时隐藏到系统托盘,dsh 进程继续运行。
- 托盘菜单支持打开主窗口,以及退出 dsh 进程。
- 重复运行
dsh web时通过单实例锁聚焦已有窗口,不弹新窗。 - 记忆窗口位置和大小,退出后重开保持。
- Electron 缺失、spawn 失败或窗口加载失败时,自动降级为浏览器模式,不阻断
dsh web。 - 可选桌面快捷方式,双击启动
dsh web并唤起已有窗口。
安装与启用¶
已核实资料没有给出类似 dsh plugin add ... 的单一官方安装命令,只给出 profile 接入方式。下面按照已核实步骤说明。
1、接入 web profile¶
在 profile 的 package.json 中加入 dsh-desktop-shell 依赖,并把 dsh-desktop-shell 写入 dsh.profile.bundles:
dependencies
dsh-desktop-shell
dsh.profile.bundles
dsh-desktop-shell
2、在 profile 目录安装链接¶
在 profile 目录执行:
npm install
3、启动验证¶
执行:
dsh web
如果插件生效,dsh web 会启动 DSH 现有 HTTP 服务,并自动弹出 Electron 窗口。
典型用法¶
启动桌面窗口¶
dsh web
临时关闭桌面窗口¶
如果只想使用浏览器模式,可以执行:
dsh web --no-desktop
或在 PowerShell 中设置环境变量:
$env:DSH_DESKTOP="0"; dsh web
也可以在 profile 配置中关闭桌面窗口:
enabled: false
使用托盘¶
启动后,关闭窗口只会隐藏到系统托盘,dsh 进程继续运行。托盘菜单支持:
- 打开主窗口
- 退出 dsh 进程
已核实事实指出,托盘「退出」依赖 launcher 提供的接口结束 dsh 进程:
ctx.appExit(0)
使用桌面快捷方式¶
如果不习惯在终端输入命令,可以使用插件提供的启动脚本:
scripts/launch-dsh-web.cmd
scripts/launch-dsh-web.ps1
双击对应脚本会启动 dsh web;如果已有实例在运行,则唤起已有窗口,不重复启动。
降级与退出行为¶
dsh-desktop-shell 的关键降级策略如下:
- Electron 缺失、spawn 失败或窗口加载失败时,自动回到浏览器模式。
- 窗口加载失败时,Electron 会退出,DSH 保持浏览器模式。
- 托盘「退出」会结束整个
dsh web进程。
已核实资料强调:任何 Electron 缺失、spawn 失败或加载失败都会自动回到浏览器模式,不阻断 dsh web。
卸载¶
要恢复纯浏览器模式,先做配置移除,再重新安装 profile 依赖:
1、从 profile package.json 的 dependencies 与 dsh.profile.bundles 移除:
dsh-desktop-shell
2、在 profile 目录执行:
npm install
3、重启:
dsh web
适用场景与注意¶
适合本地长期使用 DSH Web GUI,并希望 dsh web 自动弹出桌面窗口的人。它不会改变 DSH 的 Web 服务主体,只是增加一个 Electron 窗口入口和托盘管理。
需要注意:插件会随当前 dsh web 进程一起运行,并以当前 DSH 进程权限执行本地行为。安装前应检查源码、依赖和许可证。
另外,如果维护桌面快捷方式脚本,launch-dsh-web.cmd 必须保持纯 ASCII 内容。内嵌中文路径会在 GBK 系统上出现乱码。
如果 Electron 二进制下载较慢,已核实资料提到可以设置:
ELECTRON_MIRROR
结尾¶
dsh-desktop-shell 提供的是桌面入口、托盘管理和降级能力,不改变 DSH 的 Web 服务与进程主体。如果只需要本地 HTTP 访问,可以继续使用浏览器模式;如果希望 dsh web 自动弹出可管理窗口,它可以作为一个 profile 插件接入。
已核实资料未提供社区目录页 URL,不能给出可确认链接。GitHub 仓库见:
https://github.com/Funnyvalentine00/dsh-desktop-shell