🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Catppuccin 主题 NoNameLeGo/dsh-catppuccin-theme

DeepSeek Harnessv0.6.5
NoNameLeGo5 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness Web GUI 的 Catppuccin 主题插件:Latte / Frappé / Macchiato / Mocha 四种主题一键切换,内置可开关的玻璃质感(Glassmorphism)

54.2/100
综合分
75
GitHub 星标
2,739
npm 周下载
—/5
用户评分

数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @nonamelego/dsh-catppuccin
npm 源 · @nonamelego/dsh-catppuccin 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@nonamelego/dsh-catppuccin @ 0.6.5
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 22:37:47

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 24 处,展示前 17 条)
  • 读取本地文件
    lib/index.js:1201
    const spec = JSON.parse(await readFile(join(manifestDir, "package.json"), "utf8")).dependencies?.[PACKAGE_NAME];
  • 读取本地文件
    lib/index.js:1246
    names = (await readdir(profilesDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
  • 发起网络请求
    lib/index.js:1313
    response = await fetch(REGISTRY_PACKUMENT_URL, {
  • 读取本地文件
    lib/index.js:1643
    return sanitizeState(JSON.parse(readFileSync(legacyStateFilePath(home), "utf8")));
  • 写入剪贴板
    lib/client.js:1742
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    lib/client.js:4721
    const response = await fetch(`${UPDATE_ROUTE_PATH}?channel=${readUpdateChannel()}`, {
  • 发起网络请求
    lib/client.js:4862
    return await (await fetch(`${UPDATE_ROUTE_PATH}?channel=${channel}`, {
  • 读取本地文件
    lib/tui-themes.js:56
    if (!existsSync(tuiHome) || !statSync(tuiHome).isDirectory()) return [];
  • 读取本地文件
    lib/tui-themes.js:56
    if (!existsSync(tuiHome) || !statSync(tuiHome).isDirectory()) return [];
  • 写入本地文件
    lib/tui-themes.js:62
    mkdirSync(join(tuiHome, "themes"), { recursive: true });
  • 读取本地文件
    lib/tui-themes.js:66
    for (const file of readdirSync(bundledDir).sort()) {
  • 读取本地文件
    lib/tui-themes.js:68
    const source = readFileSync(join(bundledDir, file));
  • 读取本地文件
    lib/tui-themes.js:72
    identical = readFileSync(dest).equals(source);
  • 读取本地文件
    lib/tui-themes.js:77
    if (onConflict === "preserve" && existsSync(dest)) continue;
  • 写入本地文件
    lib/tui-themes.js:80
    if (onConflict === "backup" && existsSync(dest) && statSync(dest).isFile()) copyFileSync(dest, `${dest}.bak`);
  • 写入本地文件
    lib/tui-themes.js:81
    writeFileSync(dest, source);
  • 写入本地文件
    lib/tui-themes.js:91
    writeFileSync(dest, readFileSync(join(communityDir, file)));
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-brand@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-theme@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-settings
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图

功能亮点

  • 四种主题一键切换
  • 可开关玻璃质感

README

由 DeepSeek 最新模型翻译生成
Catppuccin for DeepSeek Harness 目录 简介 ·特性 ·预览 ·安装 ·使用 ·玻璃拟态 ·兼容性 ·开发 · 🙋 常见问题 · 💝 致谢 关键字高亮 · Latte & Mocha 简介 DeepSeek Harness 的 Catppuccin 主题插件——一个包同时适配 Web GUI(dsh web)、桌面版(官方 Electron 壳 apps/desktop 与社区 DSH Desktop,共用 desktop profile)与 dsh-TUI 终端: Web / 桌面端做全界面换色与玻璃质感,TUI 端自动同步四套官方主题色板。 它内置 Catppuccin 的四个主题——Latte、Frappé、Macchiato、Mocha——把整个界面的配色都换成对应的 Catppuccin 色板;并在设置里拥有自己的独立分区 (设置 → Catppuccin:风味、代码高亮、自定义覆盖、玻璃质感、更新检查、反馈与支持都在这一页),选择会自动保存、重启自动恢复。 同时内置一套可开关的玻璃质感(Glassmorphism)皮肤:顶栏、侧边栏、输入框、轨迹视图、聊天气泡、新会话按钮都变成磨砂玻璃卡片,模糊度、磨砂度、背景亮度均可自由调节,玻璃颜色自动跟随当前 Catppuccin 主题。
展开完整文档(README 剩余 1 节)
Catppuccin for DeepSeek Harness

目录

简介 ·特性 ·预览 ·安装 ·使用 ·玻璃拟态 ·兼容性 ·开发 · 🙋 常见问题 · 💝 致谢

关键字高亮 · Latte & Mocha

简介

DeepSeek Harness 的 Catppuccin 主题插件——一个包同时适配 Web GUI(dsh web)、桌面版(官方 Electron 壳 apps/desktop 与社区 DSH Desktop,共用 desktop profile)与 dsh-TUI 终端: Web / 桌面端做全界面换色与玻璃质感,TUI 端自动同步四套官方主题色板。

它内置 Catppuccin 的四个主题——Latte、Frappé、Macchiato、Mocha——把整个界面的配色都换成对应的 Catppuccin 色板;并在设置里拥有自己的独立分区 (设置 → Catppuccin:风味、代码高亮、自定义覆盖、玻璃质感、更新检查、反馈与支持都在这一页),选择会自动保存、重启自动恢复。

同时内置一套可开关的玻璃质感(Glassmorphism)皮肤:顶栏、侧边栏、输入框、轨迹视图、聊天气泡、新会话按钮都变成磨砂玻璃卡片,模糊度、磨砂度、背景亮度均可自由调节,玻璃颜色自动跟随当前 Catppuccin 主题。

特性

- 🎨 四套主题:Latte(浅色)、Frappé / Macchiato / Mocha(深色)
- 🧩 接入官方主题系统,与内置浅色 / 深色 / 跟随系统主题平级
- 🎯 全界面配色覆盖,不只是一两个强调色
- ⚙️ 设置页独立分区一键切换,选择自动保存、重启自动恢复
- 🔧 自定义 token 覆盖:按「--dsw-* 变量: 值」逐条覆盖单个配色 token(例如把注释色换成蓝色),与所选风味一起持久保存
- 🖍️ 代码块高亮风格:默认 / 注释斜体(italic-comments)两套 shiki 风格可选
- 🌐 中 / 英 / 日 / 韩 / 西 / 法 / 德七语文案(跟随系统语言)
- 🪟 玻璃质感(云母模式):顶栏 / 侧边栏 / 输入框 / 轨迹视图 / 聊天气泡 / 新会话按钮磨砂玻璃效果,设置里一键开关;云母 / 兼容双模式(兼容模式保持原版排版,只给输入框卡片与浮层上玻璃),模糊度、磨砂度、背景亮度自由调节(交互参考 DSH-Transparent-UI-Plugin)
- 🌫️ 玻璃拟态细节:页面上下边缘渐变模糊、折叠侧边栏悬浮玻璃、随主题的氛围地面(同色系渐变;两枚柔光斑是可选开关、默认关)——内容滚入视口边缘时柔化穿过,玻璃透着地面的明暗,层次更立体
- 🎨 玻璃配色自动跟随当前 Catppuccin 主题
- 🔄 检查 Catppuccin 插件更新:设置页一键检测本插件(dsh-catppuccin)在 npm 上的最新版本,发现新版直接给出可复制的升级命令;默认开启自动检查(启动后一次 + 每 6 小时),更新渠道可选稳定版 / Beta
- 💬 反馈与支持:设置区底部与插件详情页附 GitHub 链接——遇到问题可提 Issue,喜欢就点个 Star ⭐
- 💻 dsh-TUI 终端主题:一条安装命令装进 dsh-TUI,四套主题自动同步到 ~/.dsh-tui/themes/,见安装 · dsh-TUI

预览

四个主题在 DeepSeek Harness 中的实际效果(截图来自本地 GUI,文首大图为四主题斜切合成):

🌻 Latte(浅色)

🪴 Frappé(深色)

🌺 Macchiato(深色)

🌿 Mocha(深色)

玻璃质感(Mica 云母模式)

同一会话在浅色(Latte)与深色(Mocha)下的磨砂玻璃效果:顶栏、侧边栏、聊天气泡与输入框都是玻璃卡片,消息滚过页面边缘时被柔化(截图来自本地 GUI):

🌻 Latte(浅色玻璃)

🌿 Mocha(深色玻璃)

安装

方式一:从 npm 安装(推荐)

dsh plugin --profile web add @nonamelego/dsh-catppuccin

装完重启 dsh web 即可,dsh plugin 会自动把它加进 profile 的 bundles。
其他 profile 把命令里的 web 换成对应名字即可(如 headless)。

桌面版:官方桌面壳与社区桌面壳都读同一个 profile $DSH_HOME/profiles/desktop,但 两者装/升插件的方式完全不同、也不通用——按你用的壳选一列:

| | 官方桌面壳(DeepSeek Harness 客户端) | 社区桌面壳(DSH Desktop) |
| 安装 | 应用内的插件界面 → 添加插件 → 填包名 @nonamelego/dsh-catppuccin(也接受 Git 地址 / 压缩包 / 本地路径) | 在打开的 终端里执行命令:dsh plugin --profile desktop add @nonamelego/dsh-catppuccin |
| 升级 | 先在插件界面里把插件删除,再重新填一遍同一个包名安装(v0.2.0 没有升级入口,也没有版本选择器) | 与 web 类似的更新命令:dsh plugin --profile desktop update @nonamelego/dsh-catppuccin |
| 谁执行 pnpm | 应用自带的 pnpm | 应用自带的 pnpm |

两种方式改完都要重启桌面应用才会加载新版本。

⚠️ 两列别混用:官方壳的插件界面不执行命令;社区壳那条 update 命令对官方壳也不适用。
另外,系统 PATH 上那个普通 dsh 两个壳都管不了 desktop——上游把 desktop 当自己保留的 profile,会直接报 error: profile "desktop" is managed exclusively by the Electron application。
想用 CLI 管就用别的 profile 名(web、headless、dsh-tui)。

本插件的桌面支持以官方 web + 官方 desktop 为维护核心;社区壳的 desktopProfiles 服务探测也保留。
但官方壳的 profile 进程没有专用的环境标记(它的 DSH_DESKTOP_NODE_EXECUTABLE 只注入给包安装子进程),所以本插件改为识别 Electron-as-node 运行时(process.versions.electron)来判定官方桌面版;设置的读写不受影响。

方式二:从仓库安装

dsh plugin --profile web add https://github.com/NoNameLeGo/dsh-catppuccin-theme

从 git 安装时 pnpm 可能要求允许构建脚本——按 pnpm 的提示把对应包加进 profile pnpm-workspace.yaml 的 allowBuilds 后重跑一次即可。

桌面版同理,但按上面的表走:官方壳在插件界面里直接填 Git 地址;社区壳把这条命令的 dsh plugin --profile web add … 换成 dsh plugin --profile desktop add …。

dsh-TUI(终端版)主题

本节针对第三方终端前端 dsh-TUI(需先自行装好它)。
与 Web GUI 插件同一个包,用标准的插件安装命令装进 dsh-tui profile:

dsh plugin --profile dsh-tui add @nonamelego/dsh-catppuccin

从仓库安装同理(也可用 git 形式,效果一致):

dsh plugin --profile dsh-tui add https://github.com/NoNameLeGo/dsh-catppuccin-theme

包里带一个只做主题同步的小插件行(dsh-catppuccin-tui-themes,不依赖任何服务):dsh-TUI 启动时自动把四套主题 JSON 同步到 ~/.dsh-tui/themes/,之后升级包即同步新版配色。装完启动 dsh --profile dsh-tui,在 dsh-TUI 里用 /theme 选择 Catppuccin Latte / Frappé / Macchiato / Mocha,或直接 /theme catppuccin-mocha 切换(选择会持久化,下次启动自动恢复)。

💡 已为 Web GUI 装过本插件、同时用 dsh-TUI 的话,无需重复安装:Web 端每次启动会自动同步主题到 ~/.dsh-tui/themes/(仅当该目录已存在)。

📁 不想装包也可手动复制:把 themes/.json 拷进 ~/.dsh-tui/themes/ (Windows:%USERPROFILE%\.dsh-tui\themes\),只是不随版本自动更新。

⚠️ catppuccin-.json 归本插件所有、同步时会被覆盖;想自定义请改名另存。

💡 TUI 主题只管 TUI 内部配色,终端背景由你的终端决定——建议也配上对应风味的 Catppuccin(见 Catppuccin ports 列表),观感最一致。

使用

1. 打开 Web GUI(默认 http://127.0.0.1:3080);在 DSH Desktop 中则直接打开桌面应用即可。
2. 打开 设置,在左侧导航里点 Catppuccin(官方各节之后的独立分区)。
3. 在 主题 区域选择风味: Latte(浅色)、Frappé、Macchiato 或 Mocha(深色)。
4. 选择 跟随系统 则回退到官方主题——会还原你启用 Catppuccin 之前的官方偏好(浅色 / 深色 / 跟随系统),而不是强制重置。

另一处入口:在 插件页(Plugins)点开本插件自己的卡片,中间会出现同一组设置(Catppuccin 主题 / 玻璃质感 / 检查更新 / 反馈与支持)——两处读写的是同一份偏好,改哪边都一样。
该区域由宿主(≥ 0.2.0-rc.2 的插件详情页)提供,更旧的版本上没有。

代码高亮与自定义覆盖

- 代码高亮风格:默认 / 注释斜体(italic-comments)——只影响代码块与 diff 的 shiki 高亮配色。
- 自定义覆盖(折叠区,按钮上显示已有条数):按「--dsw-* 变量: 值」逐条覆盖单个 token,例如 --dsw-static-blue-500 → #89b4fa。键名失焦生效(必须以 -- 开头,否则该条会被丢弃); 值同样失焦生效、清空值即删除该条;✕ 删除整行。覆盖持久保存,与所选风味一起生效。

玻璃质感

在 设置 → Catppuccin 页里找到 玻璃质感 区域:

- 总开关:开启后顶栏、侧边栏、输入框、轨迹视图变为磨砂玻璃;关闭即完全还原原生界面(无需刷新)。
- 模式:云母效果把界面改成悬浮磨砂卡片;兼容模式保持原版排版,只把材质换成玻璃。
- 性能:云母效果会在大面积区域(顶栏、输入框、侧边栏)做背景模糊,流式输出时占用 GPU 较明显(同一会话实测峰值约 80%,兼容模式不到 30%);模糊半径本身不是主因(调到 0 px 也照样计费——只要不是 none,每帧都要回读背景)。
在意占用就用兼容模式:它只在输入框卡片与浮层上做玻璃,命中面明显更小。
- 预设:清透 / 标准 / 磨砂 三档一键套用;想微调再用下面的滑条(当前旋钮值与某档一致时该档高亮)。
- 玻璃模糊度(0–40 px)、磨砂度(0–100%):控制玻璃的模糊半径与不透明度。
- 背景亮度:深色模式 0–50 压暗、浅色模式 50–100 提亮(50 为原样),直接调和进地面底色;拉到两端时氛围层淡出,回到纯白 / 纯黑。
- 地面光斑:在地面渐变上叠两枚固定于屏幕的柔光斑(0.6.3 的观感),默认关——光斑不跟面板走,每块玻璃透出的是它的不同部位,打开后左上角会明显偏亮。
- 就地预览:玻璃区里有一条地面样本条(拖亮度或切光斑,它当场变化——取的就是页面地面那套色);代码高亮下方有代码样本(直接读 --shiki-token-,切「柔和注释」即刻变色);模式选择旁的 看一眼主界面 会关掉设置页,让你直接看真实布局。

玻璃配色自动跟随当前主题,切换 Latte / Frappé / Macchiato / Mocha 时即时变色;所有设置跨重启自动恢复。

检查 Catppuccin 插件更新

在 设置 → Catppuccin 页的 玻璃质感 下方找到 检查更新 区域:

- 点击 检查更新 即对比 npm 上的最新版与当前版本:已是最新 → 显示当前版本号;发现新版 → 显示新版本号并给出可复制的升级命令(命令中的 profile 名自动探测,无需手动替换;探测失败才回退为 web)。
- 自动检查:默认开启——启动后检查一次、之后每 6 小时一次(该行可关闭); 渠道可选 稳定版(只跟 latest)或 Beta 版(连预发布一起跟)。
- 本插件为本地链接 / 源码安装(link: / file: / git)时不显示 npm 升级命令,会提示改用 git pull 或重新构建。
- 通道策略:正式版只跟随 latest 标签;预发布版同时跟随 beta(升级命令自动带 @beta)。离线或网络失败时显示原因并可重试。
- 升级路径按宿主分流:官方桌面版(DeepSeek Harness 客户端)不给命令行——它没有可达的终端入口,所以这一行改为给出 包名@渠道 并提示在 插件界面里先删除、再重新安装(与上面「桌面版」段的升级路径一致); 社区桌面壳与 web 仍照常给出可复制的 dsh plugin … 命令。
判定由宿主完成(web / community-desktop / official-desktop),无需你选。

玻璃拟态(Glassmorphism)

玻璃拟态是一种视觉风格:界面面板像一片磨砂玻璃——半透明填充、背景模糊(backdrop-filter: blur())和玻璃细节(描边、内高光、柔和投影),透过它能看到并柔化背后的内容。

本插件的具体效果:

- 六个区域玻璃化:顶栏、侧边栏、输入框、轨迹视图、聊天气泡和新会话按钮;云母模式下成为带圆角的悬浮卡片,聊天内容滚动时从玻璃下方穿过、被模糊;折叠侧边栏时导航条同样悬浮在聊天区边缘(「性能与用量」统计行不套玻璃卡、留在卡外,但自 0.6.4 起它下面有一条同色磨砂背板,防止滚动正文从状态栏读数底下透出——见 CHANGELOG 的 0.6.2「拆除融合带」与 0.6.4 的 issue #29);
- 页面边缘渐变模糊:视口上下各有一条渐变模糊带,消息滚到边缘时被柔化穿过——内容在边界「融化」(借鉴 DSH-Transparent-UI-Plugin 的 Aqua 皮肤);
- 配色自动跟随主题:Latte 是浅色玻璃、Mocha 是深色玻璃,切换主题即时变色;页面地面取当前主题色,叠同色系渐变与柔光斑,背景亮度旋钮调和进地面底色(详见 docs/issue-25-ambient-ground.md);
- 一键开关:关闭即完全还原原生界面,插件卸载不留任何残留。

兼容模式误命中了别的面?

兼容模式靠类名子串与语义属性给宿主与第三方插件的悬浮面加玻璃,不需要插件配合——代价是子串匹配无法区分「面」与「面里的行级容器」。自 0.5.8 起,明确会被命中的族只剩这些:

| 族 | 锚点 |
| 输入框卡片 | [data-composer-card](材质画在它的 ::before 上,见 issue #19) |
| 菜单 | [data-menu-material='translucent'](宿主 MenuSurface 的材质钩子;配方覆写它自带材质面读的 --dsw-menu-surface-fill / --dsw-menu-backdrop-filter)+ 手写菜单兜底 [role='menu']:not([data-menu-material]):not([data-menu-material] ) |
| 弹出层 | [class='popover'] / [class='dropdown'](仍是子串) |
| 模态框 | [role='dialog'][aria-modal='true'] |
| 宿主右侧栏(仅展开态) | [data-sidebar-right-panel][data-sidebar-right-open] |

第三方插件里新出现的类名仍可能被误命中。遇到时走三步:① 只读取证(一段粘进控制台的探针脚本,列出命中的元素与规则)→ ② 临时止血(外部注入一条 !important 还原;本插件不提供「自定义 CSS」配置项)→ ③ 反馈(把取证输出连同 DSH 与插件版本提到 issues)。
三步的完整说明、探针脚本与历史(#16 / #17 / #19)见 docs/glass-mis-hits.md。

环境限制:玻璃需要宿主提供可透出的底色

玻璃层用 backdrop-filter 读取它背后实际被画出来的像素。本插件只负责给面加材质, 不负责给宿主造透明底:宿主若把窗口与自绘容器刷成不透明色,玻璃面背后就没有可柔化的内容,效果退化为半透明叠色——能看到色调,看不到悬浮/磨砂层次。

| 宿主 | 表现 | 原因 |
| 官方 Web GUI / 官方桌面壳 | 正常 | 窗口与容器提供可透出的底 |
| 第三方 DSH Desktop(dsh-plugin-desktop 2.0.17) | 仅半透明叠色 | Windows 上静默把窗口材质强制为 off(设置里的 Mica/纯色选项选了不生效);同时把侧栏表面与自绘容器刷成不透明面板色(--dsh-desktop-frame-fill / .dshDesktopSidebarSurface 取 --dsw-alias-bg-layer-1) |

本插件不会为此加 !important 覆写:那等于让插件去接宿主的容器结构,宿主一改就碎,也偏离「只改材质」的定位。宿主将来若能提供 Windows 原生窗口材质(backgroundMaterial: mica/acrylic),本套实现无需改动即可受益。

自查(玻璃「正常」与「观感平」返回的 computed 值可能完全相同,差别只在宿主有没有给出透明底):

const s = document.querySelector('[data-dsh-glass-surface]'), cs = getComputedStyle(s)
console.table({ backdropFilter: cs.backdropFilter, background: cs.backgroundColor,
radius: cs.borderRadius, roots: [...document.documentElement.attributes]
.map(a => a.name).filter(n => n.includes('glass')).join(', ') })

更早的第三方壳版本尚无可靠对照(无法确认当时主题/玻璃是否真的作用到侧栏),暂不下结论。

兼容性、权限与失败边界

兼容范围

| 项 | 声明 |
| DSH | >=0.1.7-rc.1(设置页消费官方 dsh-client-ui-primitives 的 SegmentedControl,该导出自 0.1.7-alpha.1 起才有;旧的 settingsScope 通道代码保留,但 0.1.5 / 0.1.6 宿主不再声明支持) |
| Node.js | >=20 |
| Profile | web(Web GUI 与两个桌面壳都启动 web 界面,共用本插件);桌面端默认 profile 名为 desktop(已声明) |
| 已验证的具体版本 | 0.2.1-rc.2:官方桌面壳真机验收——插件正常启动、token 逐项生效、玻璃配方完整,改设置真写回 cordis.patch.yml(修复前不写)、重启后从文档采纳回来(审计);0.2.0-rc.2:官方桌面壳自带运行时的启动级 e2e(19/19)、真机桌面窗口像素与标题栏取色链路、configForms 落盘(审计);0.1.7-rc.1:真实 profile 上完成安装、启动、改设置落盘与重启恢复(证据);0.1.7-rc.2:启动级 e2e 与玻璃层的真页采样(issue #16 / #17);0.1.5-rc.1:按 CI 口径复跑的启动级 e2e(历史记录,已低于当前兼容下限) |

package.json 的 dsh.compatibility(dsh / dshReleases / dshOperations)只声明当前支持的三条: 0.1.7-rc.1 / 0.2.0-rc.2 / 0.2.1-rc.2(兼容下限 >=0.1.7-rc.1);更早的 0.1.5-rc. 与 0.1.7-alpha. 是当时的验证记录,不在声明内。

色彩覆盖以 dsh-v0.2.0-rc.2 的 design-platform.css 为基线:每方案 190 个 --dsw-* token(static 77 / alias 101 / specific 11 / 非三族 1)全覆盖,含 0.2.0 新增的 17 个 alias。

权限与外部访问

| 类别 | 用途 | 边界 |
| 文件读 | 识别当前 profile 与安装来源($DSH_HOME/profiles/ 下的目录名);一次性读取旧状态文件 ~/.dsh/catppuccin-state.json 做迁移 | 只读;DSH_HOME 取自 process.env.DSH_HOME,缺省 ~/.dsh |
| 文件写 | 把四套 TUI 主题 JSON 同步到 ~/.dsh-tui/themes/(dsh-TUI 只从该目录读主题,无注册 API) | 只写这一个目录;~/.dsh-tui 不存在时是严格 no-op。设置本身由 DSH 的 settings 服务写入,插件只经官方服务读写 |
| 网络 | 「检查更新」读取 npm registry 上 @nonamelego/dsh-catppuccin 的元数据;页面侧再向本插件的宿主路由取一次结果 | 只访问 registry.npmjs.org 与同源插件路由;无遥测、无上报;离线时该行报错、不影响使用 |
| 命令 | 无 | 不执行任何子进程 / shell |
| 凭据 | 无 | 不读取任何 token、key、密码;仅读 DSH_HOME 与桌面壳标记类环境变量 |

失败边界

- 更新检查失败(离线、registry 异常、限流)只影响设置页那一行,不阻塞启动,也不影响主题与玻璃;
- 主题注册失败时 DSH 自身主题照常可用;
- 安装期只执行 prepare(本地用它构建 lib/)。仓库里的 scripts/(截图、E2E、changelog 生成)不随 npm 包发布(files 不含 scripts),也不会在安装时执行。

开发

pnpm install # 装依赖
pnpm typecheck # tsc --noEmit:src 的类型检查
pnpm typecheck:tests # tsc --noEmit:tests 的类型检查
pnpm test # vitest
pnpm build # tsdown -> lib/index.js(服务端)+ lib/client.js(浏览器)

配色表由 scripts/generate-palettes.mjs 生成,不要手改 src/client/palettes.ts; CHANGELOG 草稿由 pnpm changelog:gen 从 conventional 提交里产出。
完整命令清单、生成器与 typedoc、本地 link 调试见 CONTRIBUTING.md;状态契约的版本迁移约定见 docs/state-migrations.md。

🙋 常见问题

- Q: _"为什么外观行里看不到 Catppuccin 主题?"_\
A: 官方外观行只列出内置的浅色/深色/跟随系统偏好。四个主题在它正下方的 Catppuccin 行里。
- Q: _"我的主题选择是怎么记住的?"_ A: 选择持久保存在 DSH 的官方设置里(同一台机器的 DSH 共享这份偏好),浏览器 localStorage 作为即时缓存与多标签页同步。落点随 DSH 版本而异:0.1.6 及更早 存于 DSH home 下的官方 settings 文档(catppuccin 命名空间);0.1.7 起上游改为「插件配置表单」,落点是当前 profile 的 patch 文件里本插件的 config: 段(本插件两套都支持,按宿主实际提供的服务自动选择)。因此换浏览器、清站点数据、自定义端口(dsh web --port)或再开一个桌面实例,偏好都不会丢; DSH Desktop(官方壳与 anywhere-labs/dsh-desktop)同样跨重启自动恢复。
玻璃质感开关与各旋钮同样持久保存。0.5.0 起旧版 catppuccin-state.json 会在首次启动时一次性迁移进官方设置(文件保留作回退)。
- Q: _"窄窗口下侧边栏没有自动收起、主内容区被压得很窄,是插件的问题吗?"_\
A: 不是。这是 DSH 上游 ui-layout 的行为:视口 < 1024px 时侧栏默认自动收起;只有你手动点过侧栏开关,它才会以 280px 展开并挤压主区(主区 = 视口宽 − 280,501px 窗口下就是 221px),再点一次即收回。上游把这个「窄帧手动展开挤压」列为已知限制。
侧栏滚动条也是上游的指针可达性提示:指针不在侧栏内时不绘制,移进去(或直接滚轮)就会出现。逐项实测读数与上游代码坐标见 docs/issue-18-narrow-sidebar.md。
- Q: _"怎么知道这个插件有没有新版本?"_ A: 设置 → Catppuccin → 检查更新 一键检测本插件在 npm 上的最新版本,发现新版会给出可复制的升级命令;也可以随时手动执行 dsh plugin --profile web update @nonamelego/dsh-catppuccin (或重新 add 最新版)。
桌面版要分壳:社区壳 DSH Desktop 在应用内的 DSH 终端里用同一条命令(把 web 换成 desktop);官方壳没有升级入口——要在插件界面里 先删掉本插件,再重新填一遍包名 @nonamelego/dsh-catppuccin 安装,然后重启应用。
两种方式不通用,详见上面「安装 → 桌面版」的对照表。
- Q: _"升级命令跑了,但版本没变(桌面版重启后也还是旧的)?"_\
A: 大概率是 pnpm 11 内置的最小发布年龄(minimumReleaseAge,默认 24 小时)把刚发布的版本静默过滤掉了:pnpm add 会解析到上一个符合窗口的版本(例如新 beta 发布当天去装 @beta,实际装到的仍是上一个 beta),而界面显示的却是目标版本。三条出路,任选其一: ① 指名精确版本(最省事)——@nonamelego/dsh-catppuccin@0.5.10-beta.0,pnpm 会自动把该版本写进当前 profile 的 minimumReleaseAgeExclude;② 在当前 profile 的 pnpm-workspace.yaml 里给本包整包豁免(一次配置,之后每个新 beta 都能立刻装): minimumReleaseAgeExclude: 换行再加 - '@nonamelego/dsh-catppuccin';③ 等版本发布满 24 小时。
判断方法:看 profile 里 node_modules/@nonamelego/dsh-catppuccin/package.json 的 version, 以及 pnpm-lock.yaml 里那个包的 specifier:。

💝 致谢

- Catppuccin 提供的色板与 port 模板
- DeepSeek Harness 的插件体系
- DSH-Transparent-UI-Plugin
的玻璃质感交互与实现参考(云母 / 兼容双模式、模糊度 / 磨砂度等旋钮设计)

Copyright © 2021-present Catppuccin Org
预览分享卡片长什么样 ↓NoNameLeGo/dsh-catppuccin-theme
分享 · DeepSeek Harness Hub
NoNameLeGo/dsh-catppuccin-theme

DeepSeek Harness Web GUI 的 Catppuccin 主题插件:Latte / Frappé / Macchiato / Mocha 四种主题一键切换,内置可开关的玻璃质感(Glassmorphism)

回到顶部