# DSH 皮肤工作室 · 桌面版 [English](README.md) · [下载桌面版](https://github.com/realMisakaMikoto/dsh-skin-studio/releases) · [反馈问题](https://github.com/realMisakaMikoto/dsh-skin-studio/issues) 在 **DeepSeek Harness Windows 桌面版**中创建、预览和分享完整皮肤。本仓库现维护桌面版,接续原来已停止维护的 WebUI 专用 `0.6.0-alpha.1`。 已验证 **DSH 桌面版 0.2.0-rc.2**。其他桌面版本和操作系统尚未验证。旧 WebUI 用户可从[历史版本](https://github.com/realMisakaMikoto/dsh-skin-studio/releases/tag/0.6.0-alpha.1)下载原版。 ## 安装 1. 至少启动过一次 DSH 桌面版,让它建立配置目录。保存当前工作,然后完全退出 DSH。 2. 在终端运行 `node --version`;若提示找不到命令,请先安装 Node.js 22 或更新版本。 3. 在 Release 页面下载桌面版的 **Source code (zip)** 或 `.tgz` 安装包,解压到一个固定文件夹。 4. 双击解压目录内的 **`install-desktop.cmd`**。也可在该目录运行 `node scripts/install-desktop.mjs`。 5. 重新打开 DSH,从 **左下角账号菜单 → 设置 → 通用设置 → 自定义皮肤 → 打开皮肤工作室**进入。 Release 的源码压缩包已经包含构建好的客户端和主题素材,安装时不需要自行构建。安装后请保留解压目录:桌面配置使用本地链接引用它。 安装脚本会备份当前 profile,使用 DSH 自带的 pnpm 安装并启用本插件,保留其他插件设置。备份位置会打印在安装窗口中。全局命令 `dsh plugin --profile desktop add` 可能因桌面配置由 Electron 管理而被拒绝,请使用随包提供的安装脚本。 若 DSH 或 profile 不在默认位置,可先预览安装动作,再执行: ```sh node scripts/install-desktop.mjs --profile "D:/DSH/profile" --resources "D:/DSH/resources" --dry-run node scripts/install-desktop.mjs --profile "D:/DSH/profile" --resources "D:/DSH/resources" ``` 桌面版也通过 npm 的原包名 [`dsh-skin-studio@0.7.1`](https://www.npmjs.com/package/dsh-skin-studio/v/0.7.1) 分发,可运行: ```sh npm pack dsh-skin-studio@0.7.1 tar -xzf dsh-skin-studio-0.7.1.tgz node package/scripts/install-desktop.mjs ``` 执行安装脚本前请保存工作并完全退出 DSH,安装后保留解压得到的 `package` 文件夹。更新已有安装时,使用新包重新运行安装器,再完整重启 DSH。GitHub 与 npm 任选一种安装渠道;切换渠道时先停用旧的本地皮肤工作室入口,避免同时启用两份。`0.6.0-alpha.1` 及更早版本仍属于历史 WebUI 版本。 ## 六个完整编辑页面 | 页面 | 功能 | | --- | --- | | 皮肤库 | 新建、复制、编辑、启用、删除、恢复 DSH 默认 | | 基础编辑 | 浅深配色、OKLCH 生成、背景图片/视频、WOFF2 字体 | | 界面组件 | 分组 Token、搜索、组件点选、独立媒体、透明度、遮罩与模糊 | | 素材替换 | 五个视觉位置、原始/自定义预览、侧栏品牌布局 | | 文案 | 固定双语文案、自由文字与输入提示替换 | | 导入导出 | 完整 `.dshskin` v5 文件、资源校验、同 ID 保留/替换/取消 | 内置 **17 套完整主题**:Bright Studio、High Contrast、Tidal Paper,13 套虹ヶ咲角色主题,以及 1 套全团主题。素材已随插件提供;更新时保留用户编辑过的预设。 编辑会实时预览,“应用并保存”持久化并启用,“取消预览”恢复之前的皮肤。有未保存修改时关闭会提示确认。低对比度和组件背景可读性问题会明确显示;保存过程中保护正在提交的草稿。 组件和文字点选时,工作室暂时收起;用 F2 切换“选择目标”和“操作界面”,用 Esc 返回。不会改写用户输入或聊天内容。欢迎页、已有会话和折叠侧栏展示的元素不同,素材位置暂时不存在时会显示兼容状态并保留默认内容。 图片支持 PNG/JPEG/WebP,视频支持 MP4/WebM,字体支持 WOFF2。视频静音循环,系统减少动态效果时暂停。 ## 数据和旧版迁移 皮肤与完整资源保存在独立的 `dsh-desktop-skin-studio` IndexedDB 数据库,启用快照保存在 localStorage,重启恢复同一套皮肤。原 WebUI 插件的数据库不受影响;两版之间可通过 `.dshskin` 文件转移皮肤。 早期桌面版 v1 数据会事务性升级到 v2,原始清单、资源和快照保存在 `migration-backups`。无法转换的记录保留并显示提示。取消预览、切换、恢复默认和卸载都会清理背景、字体、文字覆盖、观察器与 Blob URL。 ## 开发与检查 ```sh npm ci npm run verify npm run verify:client npm pack ``` 修改 `src/` 下的 TypeScript/TSX/CSS,再执行 `npm run build`;`client.js` 是生成文件。客户端使用宿主提供的 React,界面通过 `settings.general.item` 和 `shell.overlay` 槽位渲染。安装或构建更新后完整重启 DSH 验证。 CI 在 Windows/Linux、Node.js 22/24 上检查源码,桌面运行环境目前仅验证 Windows。已安装宿主的可选检查包括 `npm run check:install`、`npm run asar` 和 `npm run drift`。非标准路径可设置 `DSKIN_RESOURCES_DIR`、`DSKIN_DSH_ROOT`、`DSH_HOME` 或 `DSH_PROFILE_DIR`。 详见[运行接口](docs/runtime-facts.md)、[验收历史](docs/verification.md)和[皮肤包格式](docs/skin-format-v5.md)。反馈问题时请附 DSH 版本、插件版本和复现步骤。 ## 许可与来源 源码延续原项目的 **AGPL-3.0-only** 许可;旧桌面接入代码的 MIT 声明保留于 `LICENSE.local-MIT`。角色素材不属于源码许可,归属见 [THIRD_PARTY_ASSETS.md](THIRD_PARTY_ASSETS.md)。