Back to home@runcat-tommy

dsh-theme-manager

Two-level theme manager for DeepSeek Harness Web: pick a culture/scene or a national flag first, then a concrete style. 40 built-in styles (ink wash, ukiyo-e, Suzhou garden, cyberpunk, 20 flags & more).

Stars
0
Language
JavaScript
Created
Aug 28, 2026
Updated
Aug 28, 2026
GitHub repo

Introduction

dsh-theme-manager

两级式主题管理器(DeepSeek Harness Web 插件):先选文化 / 场景,再选具体风格

English: README.en.md

主题管理器预览

功能

  • 两级选择 UI:设置 → 主题管理器(settings.section 新页面),左侧第一层列表 + 右侧第二层风格卡片(含配色色卡预览)。
  • 实时生效:每套风格通过 theme 服务 register() 注册为真正的主题(--dsw-alias-* token 覆盖),点「使用」立即切换,无需刷新;同时也会出现在「设置 → 外观」行的额外色块中。
  • 选择记忆:当前风格保存在本浏览器 localStorage(dsh.themeManager.active),刷新/重开自动恢复;在「外观」行切回内置浅色 / 深色 / 跟随系统时自动清除。
  • 中英双语:文案跟随界面语言(locale 服务,zh / en)。

内置风格

当前内置 40 套风格(文化 / 场景 20 套 + 国旗 20 套;浅色底 33 套 · 深色底 7 套):

文化 / 场景(第一层:中国 / 日本 / 节庆 / 通用氛围)

第一层第二层配色意象
中国水墨风格宣纸白底 · 墨黑主色 · 朱砂红点缀
中国苏州园林风格粉墙黛瓦 · 青灰 · 竹绿
中国故宫宫墙风格朱红宫墙 · 鎏金点缀
中国青绿山水风格石青 · 石绿 · 赭石(千里江山图)
中国国潮霓虹风格 🌙中国红 · 荧光青 · 墨夜
日本浮世绘风格和纸米底 · 群青主色 · 赭红与芥子黄点缀
日本侘寂和风低饱和米灰 · 枯山水禅意
日本樱花花见风格樱粉 · 素白 · 嫩芽绿
日本江户夜行风格 🌙深靛夜空 · 灯笼暖橙
日本东京霓虹风格 🌙霓虹粉 · 电光青
节庆红黄吉庆风格中国红 · 金黄 · 金箔
节庆圣诞风格松树绿 · 圣诞红 · 金
节庆万圣夜风格 🌙暗紫 · 南瓜橙 · 黑
通用氛围赛博朋克风格 🌙霓虹粉紫 · 电光青 · 深黑
通用氛围暗夜极简风格 🌙纯黑灰 · 高对比
通用氛围森林自然风格墨绿 · 苔绿 · 米白
通用氛围海洋清凉风格海蓝 · 白 · 青
通用氛围莫兰迪低饱和灰调柔和 · 高级感
通用氛围复古胶片风格暖棕 · 褪色黄
通用氛围星空夜色风格 🌙深蓝紫 · 星光白

🌙 = 深色底版(colorScheme: "dark");其余为浅色底版。

国旗(第一层:国旗)

两色国旗(日本、印尼、沙特、瑞士等)由 flagSpec() 生成器以旗帜主色为基准,通过明度派生补齐全部背景层级 / 文字 / 边框 / 状态色。

第一层第二层配色意象
国旗美国星条旗:海军蓝 · 星条红 · 白
国旗中国五星红旗:中国红 · 金黄
国旗德国黑 · 红 · 金
国旗日本日之丸:白 · 红
国旗印度藏红 · 白 · 绿 · 靛蓝
国旗英国米字旗:深蓝 · 白 · 红
国旗法国蓝 · 白 · 红
国旗意大利绿 · 白 · 红
国旗加拿大枫叶旗:红 · 白
国旗巴西绿 · 黄 · 蓝
国旗俄罗斯白 · 蓝 · 红
国旗韩国太极旗:白 · 红 · 蓝 · 黑
国旗墨西哥绿 · 白 · 红
国旗澳大利亚南十字:深蓝 · 白 · 红
国旗西班牙红 · 金
国旗印尼红 · 白
国旗土耳其新月:红 · 白
国旗荷兰红 · 白 · 蓝
国旗沙特阿拉伯绿 · 白
国旗瑞士十字:红 · 白

安装

要求:dsh web 0.1.0-rc.6 或更新版本。

方式一:从 GitHub 直接安装(推荐)

dsh plugin 会把依赖装进 profile 并自动加入 dsh.profile.bundles,无需手动改配置:

dsh plugin --profile web add github:runcat-tommy/dsh-theme-manager

或使用完整 git 地址:

dsh plugin --profile web add https://github.com/runcat-tommy/dsh-theme-manager.git

安装完成后重启 dsh web,打开 设置 → 主题管理器 即可使用。

没有装 pnpm 时,先装 pnpm:npm i -g pnpmdsh plugin 依赖 pnpm)。

方式二:npm 安装(发布到 npm 后可用)

dsh plugin --profile web add dsh-theme-manager

同样重启 dsh web 生效。

方式三:下载源码手动安装(开发 / 调试)

  1. 下载源码:GitHub 仓库页面 Code → Download ZIP 解压,或 git clone https://github.com/runcat-tommy/dsh-theme-manager.git

  2. 进入源码目录,直接安装当前目录:

    cd dsh-theme-manager
    dsh plugin --profile web add .
    

    dsh plugin add . 会把当前目录解析为绝对路径(file: 快照)装入 profile。如果用于开发调试、希望改动源码即时生效,改用活链接形式:

    dsh plugin --profile web add link:.
    

    也可以手动编辑 ~/.dsh/profiles/web/package.json

    {
      "dependencies": {
        "dsh-theme-manager": "link:D:/path/to/dsh-theme-manager"
      },
      "dsh": {
        "profile": {
          "bundles": [/* …原有… */, "dsh-theme-manager"]
        }
      }
    }
    

    然后在 ~/.dsh/profiles/web 下执行 pnpm install

  3. 重启 dsh web

使用

  1. 打开 设置 → 主题管理器
  2. 左侧选第一层(中国 / 日本 / 节庆 / 通用氛围),右侧点某张风格卡片 使用 → 界面立即换肤。
  3. 刷新页面风格保留;想回到默认,点底部 恢复默认外观,或在 设置 → 外观 行切换浅色 / 深色 / 跟随系统。

扩展新风格

lib/client.jsSTYLES 数组中加一项(并补 CATEGORIESzh / en 文案)。风格用紧凑 spec(约 30 个核心色值)声明,palette() 会自动展开成完整 --dsw-alias-* token 表:

{
  id: "suzhou-garden",          // 唯一 id(不能与内置 light/dark/system 冲突)
  category: "china",            // 归属的第一层
  colorScheme: "light",         // 绑定的底版("light" 或 "dark")
  labelKey: "style.suzhouGarden",
  descKey: "style.suzhouGardenDesc",
  swatch: ["#…", "#…", "#…", "#…"],   // 卡片预览色卡(base / layer2 / brand / label1)
  spec: {
    base: "#f4f1e8", layer1: "#faf7ef", layer2: "#efead9", layer3: "#e5dec8",
    overlay: "#fdfbf4", platform: "#efe9d7",
    label1: "#2f2f2a", label2: "#56544a", label3: "#7d7a6c", dimmed: "#a9a491",
    onDark: "#faf7ef",              // 主按钮上的文字色(浅色底给近白,深色底给近黑)
    brand: "#4a7c59",
    btnPrimary: "#2f2f2a", btnPrimaryHover: "#46443c", btnPrimaryDimmed: "#e2dcc6",
    btnInfo: "#4a7c59", btnInfoHover: "#5b8f6a",
    brandTertiary: "#dce6d4",
    error: "#a34a32", error2: "#c05a3e",
    success: "#3f7a4e", success2: "#55906a", success3: "#dce8d2",
    warn: "#a8762e", warn2: "#c2913f", warn3: "#f0e3c2", warnLabel: "#8a5f1f",
    bubble: "#e8e2cf", bubbleHi: "#dcd4b8",
    sidebar: "#eee9d8", sidebarActive: "#e3dcc4", sidebarAccent: "#c6bb97", sidebarHover: "#e9e3cf",
    toast: "#2f2f2a"
  }
}

token 名与语义参考 @deepseek-ai/dsh-client-ui-themelib/styles/design-platform.css(别名层)。

结构

dsh-theme-manager/
├── assets/                # 预览图(README 引用)
├── package.json           # dsh.client 声明(web 平台,纯浏览器插件)
├── cordis.patch.yml       # bundle patch:注册一行 profile 条目
├── README.md              # 中文说明
├── README.en.md           # 英文说明
└── lib/
    ├── index.js           # host 半部(no-op)
    └── client.js          # 浏览器半部:风格定义 + 注册/恢复 + 两级选择 UI

路线图

  • 中国 · 水墨风格 / 日本 · 浮世绘风格(小样)
  • 扩展至 20 套文化 / 场景风格(中国 5 · 日本 5 · 节庆 3 · 通用氛围 7,含 7 套深色底版)
  • 国旗系列 20 套(两色国旗通过色调派生补齐层级)
  • 风格列表配置化(JSON 定义,免改代码)
  • 每套风格支持 light / dark 双底版
  • 纹理增强(宣纸、金箔、波浪等背景图案)