← Back to home@H1Kariiiiiii

dsh-icon-console

No description

Stars
3
Language
JavaScript
Created
Sep 6, 2026
Updated
Oct 2, 2026
GitHub repo

Introduction

dsh-icon-console

DeepSeek Harness 桌面端 图标控制台:导入一个图标,一键应用到桌面快捷方式、开始菜单快捷方式、应用窗口图标与系统托盘图标;附带一键重启与优雅退出。

中文 · English

⚡ 安装(复制这一行即可)

pwsh -File ~\.dsh\tools\dsh-desktop-cli.ps1 plugin --profile desktop add github:H1Kariiiiiii/dsh-icon-console

桌面端 profile 由 Electron 独占管理,普通 dsh 命令会被拒绝,因此使用桌面端自带 CLI。装完重启桌面端即可。

功能

图标自定义(核心)

目标生效时机说明
桌面快捷方式立即改写 DeepSeek Harness.lnk 的 IconLocation
开始菜单快捷方式立即同上
应用窗口图标需重启替换 <安装目录>/resources/icon.png(窗口与任务栏)
系统托盘图标需重启替换 <安装目录>/resources/tray.ico
  • 导入方式:本地上传(文件选择器,base64 上传)或直接填写磁盘路径
  • 格式支持:快捷方式图标需要 .ico;应用/托盘图标支持 .ico 与 .png
  • 自动备份:首次运行即把官方图标备份到 ~/.dsh/icon-console/backup/
  • 一键恢复:随时还原官方图标(快捷方式立即生效,应用/托盘图标需重启)
  • 图标库:把常用图标存到 ~/.dsh/icon-console/library/,随时调用或删除

应用控制

  • 重启应用:结束当前 Host 进程,桌面端随后弹出官方恢复对话框——点「重启」即可(默认按钮就是重启,直接回车)
  • 退出应用:优雅结束 Host 进程

为什么重启是这样做的?桌面端的窗口与进程生命周期由 Electron 外壳拥有,插件跑在 Host 子进程里。官方市场(dsh-market)在桌面端同样把 allowRestart 硬编码为 false,理由是「重启原生 Electron 进程会绕过桌面端的启动器生命周期」。因此本插件不自行拉起 Electron,而是把重启交回外壳的官方恢复流程——这是生命周期正确的做法。

配置(设置 → 插件 → 插件配置 → 图标控制台)

字段默认值说明
启用插件true总开关
自动重应用false发现快捷方式图标被改动时自动恢复为记住的图标
快捷方式含开始菜单true处理桌面快捷方式时一并处理开始菜单

配置同时保存在 ~/.dsh/icon-console/state.json 与 settings 表单(volatile 字段)。

安装

需要 DeepSeek Harness 桌面端(Electron)。所有 HTTP 路由仅限 loopback。

推荐:从 GitHub 安装

# 桌面端 profile 由 Electron 独占管理,用桌面端自带 CLI
pwsh -File ~\.dsh\tools\dsh-desktop-cli.ps1 plugin --profile desktop add github:H1Kariiiiiii/dsh-icon-console

# 然后重启桌面端

开发:本地源码安装

pwsh -File ~\.dsh\tools\dsh-desktop-cli.ps1 plugin --profile desktop add "file:C:/路径/dsh-icon-console"

file: 依赖跨盘符时 pnpm 是复制而非链接;改源码后需重跑一次 add(或删掉 node_modules/dsh-icon-console 再 pnpm install)才会同步。

安装后验证

# 组合层应出现 dsh-icon-console
pwsh -File ~\.dsh\tools\verify-desktop-profile.mjs

重启桌面端后进入 设置 → 插件 → 插件配置,应看到「图标控制台」卡片。

卸载

pwsh -File ~\.dsh\tools\dsh-desktop-cli.ps1 plugin --profile desktop remove dsh-icon-console
# 图标库与备份保留在 ~/.dsh/icon-console/,可手动删除

兼容性说明

基于 桌面端 0.2.0-rc.2(内嵌 DSH 运行时)实测:

层状态
host 路由(ctx.webServer.register,exact + loopback 围栏)✅ 稳定
settings 表单(0.1.7+ 的 .volatile() + describe() / update() 契约)✅ 已按新契约实现
ctx.appExit✅ 可选读取,缺失时 process.exit 兜底
client bundle(window.__ModuleLoader__.load 惰性 CJS 工厂)⚠️ 私有协议,随版本可能变化
client 槽位(settings.section,与 wallpaper-engine 等第三方卡同槽)⚠️ 契约细节可能变化
图标文件替换(resources/)✅ 目录可写;应用升级会覆盖,重跑「应用图标」即可

降级保障:即使 client UI 完全失效,图标仍可通过 HTTP 路由直接操作;快捷方式图标不依赖应用重启。

常见问题

Q: 应用/托盘图标选了但没变化? A: 这两项需要重启应用(Electron 启动时只读取一次)。用卡片里的「重启应用」按钮,或手动重启。

Q: 快捷方式图标不刷新? A: Windows 资源管理器有图标缓存。按 F5 刷新桌面,或重启资源管理器(taskkill /f /im explorer.exe & start explorer)。

Q: 提示「未找到 DSH 桌面端安装目录」? A: 应用/托盘图标需要定位安装目录。可用环境变量 DSH_DESKTOP_INSTALL 指定安装根(含 resources/ 的那一层)。

Q: PNG 不能用作快捷方式图标? A: Windows 快捷方式只接受 .ico;.png 可用于应用窗口与托盘图标。

Q: 升级桌面端后图标变回官方了? A: 应用升级会替换 resources/。重新点「应用图标」即可;官方图标备份一直保留在 ~/.dsh/icon-console/backup/。

背景

  • 本插件由 dsh-desktop-launcher2(dsh web 时代的桌面启动器)改造而来。桌面端(Electron)本身即可双击启动,自带启动画面与托盘退出,原先「创建启动快捷方式 + 打开浏览器」的定位已无意义。
  • 改造后聚焦桌面端真正缺少的能力:图标自定义(应用 / 托盘 / 快捷方式)与便捷的应用控制。
  • 原始启动器移植自 @linxin666/dsh-desktop-launcher@0.2.8(Apache-2.0);当前代码已按桌面端 0.2.0 架构重写,仅保留其授权与致谢。

目录结构

dsh-icon-console/
├── lib/
│   ├── index.js         # host 入口:路由、settings(volatile 契约)、备份
│   ├── client.js        # client bundle:设置卡片 UI
│   └── host/
│       ├── icons.js     # 图标校验 / 备份 / 快捷方式(.lnk) / resources 写入
│       └── restart.js   # 退出与外壳中介的重启
├── assets/              # 内置 dsh 图标
├── cordis.patch.yml     # bundle patch 层
├── package.json
└── LICENSE              # Apache-2.0

致谢

  • 原始启动器功能与 UI 移植自 zhu1090093659/dsh-web-ui 仓库的 @linxin666/dsh-desktop-launcher@0.2.8(Apache-2.0)。
  • 图标资源沿用该包内置素材。

License

Apache-2.0(保留原包移植部分的版权声明)。