前言¶
在 Linux 上跑 DeepSeek Harness(DSH)时,Web GUI 通常要自己在终端里起服务、记端口,再打开浏览器。若希望像普通桌面应用一样从应用菜单或桌面图标启动,社区里已有独立的 shell 项目 linux-dsh-web-entry,用 git clone 后执行 install.sh 即可。对已经常驻 Harness、习惯在 Settings 或对话里操作的人来说,再切到仓库目录维护一套脚本并不顺手。
dsh-linux-desktop-entry 是维护者 ShiTan-677 发布的 DSH 插件(分类:客户端)。它不把安装逻辑重写一遍,而是在 Harness 进程内提供第二套交付面:Settings 页面、Agent 工具 desktop_entry、以及 Composer 命令 /desktop-entry,三者共用同一套实现,底层仍调用内嵌的 linux-dsh-web-entry shell 套件。插件不能代替桌面文件在「DSH 未运行」时拉起 Harness——那是 .desktop 启动器在进程外完成的;插件负责的是在 DSH 已运行时安装、修复、卸载和查看桌面入口,并可选把 GUI 在浏览器应用窗口中打开。
这是什么¶
一句话:在运行中的 DSH 里,为 Web GUI 安装、修复或移除 Linux 桌面入口,并可打开应用窗口。
| 项目 | 说明 |
|---|---|
| 目录页 | https://www.skillhub.cn/plugins/ShiTan-677/dsh-linux-desktop-entry |
| 源码 | https://github.com/ShiTan-677/dsh-linux-desktop-entry |
| 当前版本(package.json) | 0.1.0 |
| 许可证 | MIT(内嵌 shell 套件自带独立 LICENSE) |
桌面入口本身(启动器、菜单项、受信任图标、可选的 systemd --user 服务)来自 Linux DSH Web Entry;插件在 vendor/linux-dsh-web-entry/ 中携带该项目的副本并执行其 install.sh 与 bin/dsh-web-open.sh。
核心功能¶
下面三条入口对应同一套后端,README 用表格概括如下:
Settings → Desktop entry agent: desktop_entry composer: /desktop-entry
[Installed] {"action": "status"} /desktop-entry status
Install · Uninstall {"action": "install", /desktop-entry install
Open in app window "systemd": false} /desktop-entry open
Settings → Desktop entry¶
单独一页展示状态并执行操作:各安装文件是否存在、端口是否有进程监听、常驻 unit 的路径以及 is-enabled / is-active(或未使用原因)。按钮包括 Install(已安装时可 Reinstall 修复)、Uninstall、Open in app window、Refresh。安装插件时不会自动写入桌面,需在此页点击安装。
Agent 工具 desktop_entry¶
参数 action 取 status、install、uninstall、open;可选 systemd 标志。status 只读,适合先查再动。Agent 可先看状态再安装,并回传安装脚本自身输出。
/desktop-entry 命令¶
/desktop-entry # status
/desktop-entry install # 仅桌面入口
/desktop-entry install --systemd # 另建 systemd --user 常驻服务
/desktop-entry uninstall # 卸载时一并移除 unit(若存在)
/desktop-entry open # 立即打开 GUI
常驻服务(默认关闭)¶
所有界面默认不启用 systemd --user。勾选或传入 --systemd 会在登录后常驻提供 GUI,UI 会说明代价:无窗口时仍占用 Node 进程资源;默认路径是首次双击再起服务,空闲无开销。卸载会停止并删除 unit。安装器写入目录由 DSH_WEB_SYSTEMD_UNIT_DIR 控制,启动器读取 DSH_WEB_SYSTEMD_UNIT_FILE;两者不一致时页面会提示。
安装与启用¶
前提(缺一则有明确错误):
- Linux;非 Linux 主机插件会报告不支持,不提供无效操作。
- DSH profile,且 DSH 进程的
PATH中有 pnpm(install_bundle通过pnpm add安装包)。 - 克隆目录位置固定:
install_bundle记录link:依赖,移动或删除克隆会破坏插件;应先通过 Plugin Manager 移除 bundle。
官方步骤:
git clone https://github.com/ShiTan-677/dsh-linux-desktop-entry
将 bundle 安装到 profile,路径必须为克隆的绝对路径:
plugin_manager install_bundle /absolute/path/to/dsh-linux-desktop-entry
安装插件时不会向桌面写入任何文件;实际安装桌面入口需在 Settings 页面或通过工具、命令触发。
典型用法¶
- 完成
install_bundle后打开 Harness Settings,进入 Desktop entry,查看当前磁盘状态。 - 需要菜单/桌面图标时点击 Install;若文件损坏可 Reinstall。
- 在对话中让 Agent 执行「为 Harness Web GUI 安装桌面入口」,等价于调用
desktop_entry的install(可先status)。 - 在 Composer 中快速查看状态:
/desktop-entry;带常驻:/desktop-entry install --systemd。 - 要从 Harness 内直接开窗口:Settings 的 Open in app window 或
/desktop-entry open。
环境要求(README Requirements):Linux、符合 desktop entry 规范的桌面环境、用于应用窗口的 Chromium 系浏览器(细节见 shell 项目);DSH profile 与进程可访问的 pnpm。
适用场景与注意¶
适合:已在 Linux 上日常使用 DSH,希望从 Settings、Agent 或斜杠命令统一管理 Web GUI 桌面入口,而不必单独维护 linux-dsh-web-entry 仓库的用户。
不适合:只希望有一个启动器、从不装插件——可直接使用 linux-dsh-web-entry 的 git clone && ./install.sh。
权限与安全:插件在当前 DSH 进程的权限与环境下执行安装脚本与写桌面/systemd 用户单元。安装前应阅读源码与 MIT 许可证,确认 vendor/linux-dsh-web-entry/ 内嵌内容与 PROVENANCE.md 记录的上游一致。
测试与界面:仓库提供 node tools/selftest-plugin.mjs(57 项)与 vendored 套件的 selftest.sh(36 项);Settings 页未做浏览器渲染级自动化验证。页面可见文案目前为英文;元数据在 locale/en.json 与 locale/zh.json,Harness locale 服务尚未接入。
社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文介绍的是社区维护的客户端类插件之一。
结尾¶
dsh-linux-desktop-entry 把 Linux DSH Web Entry 的安装能力收进 Harness:三种入口、一套实现,边界清晰——不负责在 DSH 未运行时替代桌面启动器。需要时从目录页或 GitHub 获取源码与说明:
- https://www.skillhub.cn/plugins/ShiTan-677/dsh-linux-desktop-entry
- https://github.com/ShiTan-677/dsh-linux-desktop-entry