前言¶
DeepSeek Harness(dsh)桌面端在访达、应用程序文件夹和 Dock 里都会以独立 App 的形式出现。默认图标是统一的,若你希望 dsh 在系统里一眼可辨、或单纯想换一张自己的图,通常要改应用包资源、处理 macOS 圆角与签名,还要想办法让 Dock 和访达立刻刷新——步骤多、容易误操作。社区插件 dsh-any-icon(维护者 MentonLiu,SkillHub 分类「趣味换装」)把「上传 → 1:1 裁剪 → 设为 dsh 图标 → 一键还原」收进 dsh 设置里的「图标工坊」,在已验证的 macOS + dsh 桌面版环境下,替换后约 1–3 秒内三处同步更新,无需重启 dsh 或打断正在运行的任务。
这是什么¶
dsh-any-icon 是 dsh 的双端插件:浏览器侧提供图标工坊 UI,Node.js Host 提供 anyIcon 远程服务,经 Typert 桥接;契约集中在 shared/bridge.js(zod 双端校验)。当前版本 0.3.3,许可证 MIT,声明兼容 dsh >=0.2.1-rc.2 <0.3.0-0。README 写明:App 图标替换仅实现 macOS;Windows 尚未做深度验证,行为不作保证。
目录页:SkillHub - dsh-any-icon
源码与说明:GitHub - MentonLiu/dsh-any-icon
图标工坊能做什么¶
上传与裁剪¶
- 支持 PNG / JPG / WebP,单图 ≤ 20MB,建议边长 ≥ 1024px。
- 裁剪器强制 1:1:拖动定位、滚轮或滑杆缩放、方向键微调(Shift 加速)、90° 旋转、重置。
- 两种输出规格:
- 标准 1:1:方形图标,适合导出通用图片。
- macOS Dock(默认,会记住上次选择):1024×1024 画布,824×824 图形 + 四周 100px 透明边距,图形按 连续曲率圆角(squircle) 遮罩——与 macOS 应用图标自绘圆角一致,系统不会自动帮你加圆角。
图库与备份¶
- 图库可删除、下载多尺寸 PNG 套装(macOS Dock 含 1024px,另有 512 / 256 / 128 / 64)。
- 导出 / 导入 JSON 备份,可跨浏览器迁移;界面中英双语(跟随 dsh 语言),存储满额有提示。图标库上限 30 个;数据在浏览器 localStorage(键名
dsh-any-icon.*),不跨浏览器 / 设备自动同步。
设为 dsh App 图标¶
在工坊底部 「dsh 图标」 区:从图库选一个图标 → 「设为 dsh 图标」 / 「恢复原始图标」。
应用前插件会把图标统一处理为带透明圆角和边距的 macOS Dock PNG,再写入 App 包内图标并更新实时图标;旧图库或「标准 1:1」图标也会自动补处理,已是 macOS Dock 规格的不会重复加边距。
立即生效采用双层机制(README 技术简述):替换应用包内 icon.icns(ad-hoc 重签名 + 字节级备份)+ 写入 Finder 自定义图标,再刷新 iconservices 与 Dock 缓存。访达(应用程序文件夹)、应用程序 / 启动台视图、Dock 同一瞬间更新,不重启 dsh、不重启 Dock / Finder。
原始图标在 ~/.dsh/any-icon/ 做字节级备份;「恢复原始图标」 后原始 Developer ID 签名重新有效。状态面板可查看目标路径、实时图标 / 原生图标、当前签名、应用版本、是否运行。
注意:dsh「关于」面板里的图标要下次启动才更新;dsh 自动更新会整体替换应用包并还原图标,需重新应用。若应用前已有第三方自定义图标,插件不会覆盖并会报错。
安装与启用¶
插件以 当前 dsh 进程权限 运行,会改写 App 包内图标并请求 macOS 「App 管理」 权限;安装前建议阅读源码与 MIT 许可证,确认可接受备份与签名行为。
桌面版(推荐)¶
桌面 profile 由桌面应用独占管理,CLI 直接改 profile 会被拒绝。请在 dsh 桌面版的 插件管理 中安装本插件(发布到 npm / GitHub 后可按渠道安装;发布前可在 web 端用 link 方式体验,见下)。
Web / CLI(本地 link 体验)¶
官方 README 给出的 web profile 装入方式如下(需将 <本仓库绝对路径> 换成实际路径):
# 1) 以 link 依赖装入 web profile
cd ~/.dsh/profiles/web
# package.json: dependencies 增加 "dsh-any-icon": "link:<本仓库绝对路径>"
# dsh.profile.bundles 数组增加 "dsh-any-icon"
ln -sfn <本仓库绝对路径> node_modules/dsh-any-icon
# 2) cordis.patch.yml 追加:
# - insert:
# - id: any-icon
# name: dsh-any-icon
# 3) 启动
dsh web --no-open
发布前在 web 端还可使用:dsh plugin --profile web add link:...(路径以你本机仓库为准)。
卸载¶
删除 package.json 中的依赖与 bundles、node_modules 链接、cordis.patch.yml 的 insert 段;同目录留有 package.json.bak-anyicon 与 cordis.patch.yml.bak-anyicon 可从备份恢复。浏览器内数据可先「导出备份」再清除 localStorage。
典型用法¶
- 打开 dsh 设置 → 图标工坊。
- 点 「上传图片」,在裁剪窗内拖动 / 缩放,点 「保存图标」 入图库(默认 macOS Dock 规格)。
- 在 「dsh 图标」 区选中图库项 → 「设为 dsh 图标」 → 确认。首次在 macOS 上会弹出 App 管理 权限,请允许,或在 系统设置 → 隐私与安全性 → App 管理 中手动开启。
- 需要还原时点 「恢复原始图标」;换浏览器前用 「导出备份」,在新环境 「导入备份」。
适用场景与限制¶
适合:在 macOS 上使用 dsh 桌面版、希望自定义 Dock / 访达里 dsh 图标且要能一键还原的开发者或日常用户。
务必知晓的限制(均来自 README):
- 深度验证范围:macOS(含 macOS 26 + dsh 0.2.0-rc.2 历史实测,以及 0.2.1-rc.2 上的加载、工坊、状态与透明圆角应用验证);Windows 未深度验证。
- macOS Dock 规格与系统 squircle 存在 ≤2.5% 形状误差(Dock 显示尺寸下不可见)。
- 路线图提到 v0.4+ 可能做 Host 侧图库同步与对话式
set_app_icon;Windows .exe 资源级图标仍为待定。
DeepSeek Harness 生态主张「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。