dsh-icon-theme
为 DSH 设置和侧边栏自动分配并支持自定义的 Fluent 风格图标,离线内置 SVG,默认保留插件原图标。
安装
dsh plugin --profile web add dsh-icon-theme
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✗ |
| 2 列装 | — |
| 3 挂载 | — |
| 4 启动 | — |
dsh: initialized profile web at /home/node/.dsh/profiles/web四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-icon-theme
[English](README.md) | 简体中文
为 DeepSeek Harness 的设置导航和侧边栏功能自动分配统一图标,并支持逐项手动更改。
为什么做这个插件
dsh-icon-theme 从实时插槽账本发现功能,优先保留可信原图标,用一套精简的 Fluent 风格图标补齐缺口,并允许逐项覆盖。0.3 版已迁移到 DSH 官方配置表单;宿主提供官方设置图标插槽时,会自动使用该接口。
- 通用识别实时生效且经过优先级遮蔽后的
settings.section和sidebar.footer.action;只有侧边栏部分渲染、无法按顺序对应时,才使用经过审核的插件兼容记录。 - 用
settings.section:market这样的稳定键保存选择,不依赖中文、英文或 DOM 顺序。 - 内置 50 个 Fluent UI 16 Regular 图标、70 个 DSH 官方 UI 图标,以及经过审核的 dsh-market 单色原图标(共 121 个)。
- 运行时不请求图标 CDN、Iconify、GitHub、webfont,也不扫描其他插件包。
- 卸载或热重载时完整恢复宿主 SVG 和插件添加的 DOM 标记。
- 明确区分“当前未渲染”和“非图标卡片”,不会假装已经更改成功。
- 目标既没有可信匹配、也没有原图标时,统一使用设置齿轮回退。
安装
dsh plugin --profile web add dsh-icon-theme
重启 dsh web,打开“设置 → 图标”。
从源码安装:
git clone https://github.com/yzke/dsh-icon-theme.git cd dsh-icon-theme npm ci npm run build dsh plugin --profile web add link:"$PWD"
需要 Node.js 24.9+。engines.dsh 和 DSH peer 范围明确限定为已测试的 0.2.1-rc.5 || 0.2.2-alpha.3,不会默认放行其他预览版本。使用 DSH 0.1 的用户请保留 dsh-icon-theme@0.2.3。
DSH 版本 · 设置导航图标 · 配置持久化
0.2.1-rc.5(本次发布时 npm latest) · 可逆 DOM 适配器 · 官方 configForms
0.2.2-alpha.3(预览版) · 官方 settings.section.icon 插槽 · 官方 configForms
桌面版:通过桌面应用的插件管理器安装;或彻底退出应用后,使用桌面版自带的 dsh 命令管理插件。desktop 是桌面版专用 profile,npm 安装的 CLI 不能管理它。本插件已适配桌面版和网页版共享的客户端及 Host API,但尚未完成 Windows/macOS 原生桌面安装包的端到端实测。详见官方桌面版安装归属说明。
卸载
dsh plugin --profile web remove dsh-icon-theme
重启 dsh web。插件卸载时会恢复所有宿主 SVG,并移除自身添加的 DOM 标记和样式。
使用方式
图标页会列出所有已发现目标、稳定键、兼容状态和当前图标来源。可以按功能名、ID 或图标搜索,也可以筛选设置、侧边栏、未识别和已自定义项目;支持逐项选择、逐项恢复自动和全部恢复自动。
解析顺序固定为:
1. 用户手动覆盖。
2. 已审核并随包附带的插件原图标。
3. 可信的 DSH / 插件现有图标。
4. 稳定 ID 精确预设。
5. 稳定 ID 的无歧义语义推断。
6. 宿主已有回退图标;完全没有原图标时使用设置齿轮。
中英文名称只用于展示和搜索,不参与持久化映射。
侧边栏如何处理
状态 · 行为
已渲染的图标按钮 · 可以更改,默认优先保留原图标。
已注册但当前未渲染 · 显示“可预设”,出现时自动应用。
非图标卡片 · 明确报告,但不破坏卡片布局。
未知或结构变化的 DOM · 保持不动;只有唯一且经过审核的兼容记录才会匹配。
侧边栏 footer 和 rc.5 设置导航继续使用范围小、可逆、遇到歧义就停的适配器。alpha.3 设置导航改用官方图标贡献,保留其他插件的原图并在卸载时恢复。新增的 sidebar.panellist 等表面不属于本插件的支持范围。详见[设计文档](docs/design.md)。
同时安装 dsh-better-sidebar 时,其设置页自身图标会被视为可信原图标并默认保留;只有用户选择“替换通用回退图标”或手动覆盖时才会被替换。
外部插件兼容验证
测试固定抽取了真实开源项目的注册源码片段,包括 dsh-full-remote、dsh-context、dsh-openpencil、dsh-approve-for-me 和 dsh-composer-polish。它们证明:未安装过的设置页插件仍能被通用发现,而其他插槽上的功能不会被误认成设置或侧边栏入口。来源和固定提交见[生态兼容记录](docs/ecosystem-compatibility.md)。侧边栏回退指纹同样固定到上游提交,若这些插件后续调整 DOM,需要定期更新。
开发与发布门槛
npm ci npm run qa npm run test:web npm pack --dry-run
可选的真实 DSH 冒烟测试:
DSH_E2E_URL='http://127.0.0.1:3184/?token=TEST_PROFILE_TOKEN' npm run test:web -- -t @real-dsh
完整测试分层见 [TESTING.md](TESTING.md),图标来源和许可证见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
隐私与安全
自动识别只读取 DSH 插槽元数据和两个受支持界面的当前 DOM,不读取用户文件,也不解析其他插件的编译产物。配置通过官方共享 configForms 服务写入 dsh-icon-theme Host 条目。网页版和桌面版均由 DSH 负责鉴权、版本冲突检测、持久化和断线恢复;插件不再提供私有 HTTP 接口,也不在浏览器保存另一份偏好配置。
MIT 许可证。
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:7,最后更新 2026-11-04