mtaech/dsh-material-you:DeepSeek Harness 的 Material You 皮膚插件

前言

DSH(DeepSeek Harness)的生態建立在「一切皆插件」的理念上,外觀也不例外:皮膚以插件形式分發,通過覆蓋界面的語義 token 生效。對每天長時間面對 web 界面的用戶來說,配色與字體決定了大部分觀感,與其手工改樣式,安裝一個遵循成熟設計規範的皮膚包更省事。下面介紹 mtaech/dsh-material-you,它把 DSH web 界面按 Google Material You / Material 3 (M3) 規範重新着色與排印。

這是什麼

mtaech/dsh-material-you 是 mtaech 維護的 DeepSeek Harness 皮膚插件,在社區插件目錄中被歸入「趣味換裝」分類。它提供淺色、深色兩套外觀的 Material You (M3) 皮膚:配色由 Material Color Utilities 的 HCT 算法從種子色 #3B82F6 推導,字體採用 Maple Mono NF CN。

包內 package.json 聲明的包名爲 @deepseek-ai/dsh-skin-material-you,版本 0.1.0-rc.2,標記 private: true,許可證爲 MIT。倉庫已歸檔,開發遷移至 mtaech/melon(源碼位於 packages/skin-material-you 目錄),issue 與 PR 請提到 melon 倉庫。

配色:HCT 色調色板與 token 覆蓋

配色部分的做法:從種子色 #3B82F6 出發,用 Material Color Utilities 的 HCT(Hue–Chroma–Tone,tone 0–100)算法推導色調色板,共 5 條:primary / secondary / tertiary / neutral / neutral-variant。

這些顏色不直接寫進界面,而是通過覆蓋 --dsw-alias-* 與 --dsw-specific-* 兩類語義 token 生效。完整覆蓋清單約 80 個 token × 雙外觀,集中在 src/tokens.mjs。安裝後 system 偏好下淺色、深色兩種外觀均爲 Material You 配色。

改主題時有一個對比度約束要注意:--dsw-specific-sidebar-nav-item-active-accent 是 ask_user_question「推薦」徽章的背景色(取 primary-container),--dsw-alias-button-info-fill 是徽章的文字色(取 primary),兩者必須保持對比。

排印:Maple Mono NF CN

字體採用 Maple Mono NF CN(Nerd Font + 中文等寬)。包內自託管 Regular 字重的 woff2 文件(約 6.1MB),@font-face 用 font-weight: 100 800 聲明覆蓋全部字重;未打包的 Medium/Bold 由瀏覽器合成加粗,或回退到系統已安裝字體:

@font-face {
  font-family: 'Maple Mono NF CN';
  font-style: normal;
  font-weight: 100 800;
  src: url('../fonts/MapleMono-NF-CN-Regular.woff2') format('woff2');
  font-display: swap;
}

排印節奏沿用 M3 的字號、行高、字距,字重按 M3 的 400/500/700 映射到 Maple Mono 的 Regular/Medium/Bold,相關 token 以 --m3-typescale-* 命名。動效採用 M3 的 emphasized/standard 緩動並支持 prefers-reduced-motion;形狀遵循 M3 圓角體系(4/8/12/16/28/full px)。

如需更忠實的 Medium/Bold 字重

先找到對應字重的 TTF,用 fontTools 轉成 woff2 放入 fonts/,再補上對應的 @font-face 規則,每份約 6MB。

插件形態:bundle patch

這個插件採用 bundle patch 形態:package.json 裏聲明 dsh.bundle.patch 指向自帶的 cordis.patch.yml。cordis.patch.yml 的內容爲:

- insert:
    - id: ui-skin-material-you
      name: '@deepseek-ai/dsh-skin-material-you'

安裝後插件包會自動加入 profile 的 dsh.profile.bundles,patch 再用 insert 把 id 爲 ui-skin-material-you 的皮膚行插進加載列表,不需要手動編輯 profile。

另有一個容易混淆的點:inject 分兩層,含義不同。package.json 的 dsh.client.inject 是包名數組,當前包含 @deepseek-ai/dsh-client-runtime 與 @deepseek-ai/dsh-client-ui-theme,platform 爲 web;lib/client.js 的 exports.inject = ['theme'] 是服務名數組。自己寫皮膚類插件時注意區分這兩處。

安裝與啓用

倉庫歸檔聲明寫明:安裝方式已從 git 改爲 npm。現行安裝命令如下,把 <你的 profile> 換成實際使用的 profile 名:

dsh plugin --profile <你的 profile> add dsh-skin-material-you

README §7 還保留了另外兩種來源的寫法。從 GitHub 安裝:

dsh plugin --profile web add github:mtaech/dsh-material-you

從本地倉庫目錄安裝:

dsh plugin --profile web add "file:E:/Dev/Code/dsh-material"

其中 GitHub 安裝會走包內 prepare 構建流程,而 pnpm 默認阻止構建腳本。若提示 Ignored build scripts,在 profiles/web/pnpm-workspace.yaml 的 allowBuilds 里加入包名後重新執行即可——本包無需構建腳本也能直接運行。

啓用分三步:先執行安裝命令,再重啓 dsh web,最後按需固定主題。經過上面的步驟,界面默認跟隨 system 偏好,淺色、深色兩種外觀均爲 Material You 配色;如需固定某一外觀,在設置 → 外觀裏選擇 material-you-light 或 material-you-dark。

適用場景與注意事項

適合兩類人:一是偏好 Material You / M3 視覺語言、希望 DSH web 界面配色與字體遵循同一套規範的用戶;二是想在 DSH 上編寫皮膚插件的開發者,可以參考它的 bundle patch 結構與 token 覆蓋方式。

幾點注意:

1、插件以當前 dsh 進程的權限運行,安裝前應檢查插件源碼與許可證(本項目爲 MIT);
2、倉庫已歸檔,功能更新看 mtaech/melon,安裝命令以歸檔聲明給出的 npm 方式爲準;
3、字體只隨包攜帶 Regular 字重,Medium/Bold 爲合成或回退效果,對字重敏感的場景按上文方法自行補齊。

結尾

mtaech/dsh-material-you 用一套 HCT 推導的色調色板和 Maple Mono NF CN 等寬字體,把 DSH web 界面統一到 Material You 規範下,一條安裝命令、一次重啓即可啓用。更多信息見:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜