dsh-skin-win2000:給 DSH Web GUI 換上 Windows 2000 經典外觀

前言

DeepSeek Harness(DSH)的 Web GUI 默認是現代扁平風格。若你更習慣經典桌面系統的控件語言——中性灰底、漸變標題欄、1px 立體邊框——單靠改瀏覽器主題或零散 CSS 很難整頁統一,也容易在 DSH 升級後被覆蓋。

dsh-skin-win2000 是社區維護的 DSH 客戶端插件,把 Web 畫布整體換成 Windows 2000 的視覺規範:按 System Metrics 逐項取值,而不是「大概像那個年代」。裝好後右下角有控制面板,可隨時開關皮膚或切暗色漆面。

這是什麼

插件是標準 DSH bundle:含 dsh.bundle.patch 指向 cordis.patch.yml,並聲明瀏覽器側 dsh.client。實現爲純 JavaScript 單文件 client.js,無構建步驟;宿主半側 index.js 負責提供包內字體路由。

核心功能

度量表級配色與幾何

README 說明皮膚不做近似還原,而是對照 Windows 2000 度量表取值,並用 verify-metrics.mjs 校驗代碼中的顏色與表一致。典型取值包括:

  • 控件表面 #D4D0C8
  • 活動標題欄漸變 #0A246A → #A6CAF0,失焦 #808080 → #C0C0C0
  • 三級投影灰 #F5F5F5 / #808080 / #404040,選中高亮 #0A246A
  • 全局 border-radius 歸零,並將 6 個 --dsw-radius-* token 壓成 0px,從 DSH 組件共用的 token 源頭去掉圓角
  • 1px 立體效果用階梯式 inset box-shadow;按鈕凸起、輸入框與代碼塊凹陷,按下時凹陷並位移 1px
  • 界面不含純白像素:度量表中的 #FFFFFF 換成 #F5F5F5,工作區白底換成 #D4D0C8
  • 16px 直角滾動條:灰槽、白點陣紋、凸起滑塊

發送與停止共用同一按鈕類時,皮膚通過 aria-label 區分;停止生成時爲紅底 #CC0000。

右下角皮膚面板

啓用後右下角出現可拖動、可摺疊的控制面板(位置記在 localStorage)。主要控件:

控件 作用
啓用皮膚 開關整頁皮膚;關閉後 DSH 恢復默認,面板仍保持 Win2000 外觀
點陣字體 開關隨包分發的 unscii 點陣字體;關閉則沿用你在 DSH 裏的字體設置
暗色模式 默認關閉;只換漆面,幾何與立體邊框不變(表面 #1A1815 等),選項記在 dsh.skin.win2000
窗口示例 彈出經典對話框示例,可拖標題欄、雙擊最大化,用於查看失焦標題欄漸變

標題欄可拖動;右上角按鈕在三檔間循環:完整面板 → 僅標題欄 → 小「+」→ 回到完整。雙擊標題欄可回到右下角默認位置。

字體(可選)

包內帶點陣字體 fonts/unsciiCJKV18.woff2(約 1.42 MB),由宿主通過 /api/dsh-skin-win2000/fonts/unsciiCJKV18.woff2 提供。正文混排用 CJKV18;pre/code/kbd/samp 用 8 像素高的 unscii-8-tall 變體,便於目錄樹、方塊字符等與英文同高。皮膚本身不覆蓋 font-family(窗口標題按鈕的 Marlett 符號除外)。b/strong 等不合成粗體,避免點陣字被拉糊。

暗色模式

面板內一行開關。同一套度量與邊框,漆面改爲暖灰系;color-scheme 設爲 dark,便於原生控件與滾動條跟隨。標題欄仍爲大航海藍漸變,選中仍爲深藍。

安裝與啓用

DSH 插件管理器支持包名、Git 地址、壓縮包或本地路徑。下面命令均來自倉庫 README。

方式一:npm 包(推薦)

dsh plugin --profile web add dsh-skin-win2000

包地址:https://www.npmjs.com/package/dsh-skin-win2000

方式二:Git 倉庫

dsh plugin --profile web add github:lildanger/dsh-skin-win2000

方式三:本地路徑(開發)

dsh plugin --profile web add link:/path/to/dsh-skin-win2000

DSH 0.2.0 起:profile 依賴登記

從 0.2.0 起,未寫入 profile dependencies 的插件會被宿主靜默跳過,裝了也可能界面無變化。上述 dsh plugin add 會自動登記;若你手工掛載,需同樣執行 add 或等價登記。

確認是否登記成功:

dsh --profile web --dump-config | grep skin-win2000

改完依賴需重啓 DSH,客戶端清單在啓動時計算。

cordis.patch 行

除依賴外,bundle 仍需出現在 profile 的 cordis.patch.yml(dsh plugin add 通常會處理)。手工維護時示例:

- insert:
    - id: skin-win2000
      name: dsh-skin-win2000

圖形界面可走側欄 → 插件 → 添加插件,填入包名或 Git 地址,裝完後點立即啓用。

刷新 Web 頁面即可。若未見變化,用 Ctrl+Shift+R 強制刷新——客戶端 bundle 帶長期強緩存。

運行環境要求 Node >=20(見 package.json 的 engines)。

典型用法

  1. 按上一節任選一種方式安裝並啓用,重啓 DSH 後打開 Web GUI。
  2. 在右下角面板打開「啓用皮膚」,整頁應變爲 Win2000 灰 chrome。
  3. 需要復古點陣觀感時打開「點陣字體」;長時間閱讀可關閉,沿用 DSH 字體設置。
  4. 想對比亮色與暗色漆面時,在面板切換「暗色模式」;偏好會寫入 dsh.skin.win2000。
  5. 點「窗口示例」查看獨立經典窗口的標題欄、菜單欄與狀態欄;拖標題欄或雙擊可體驗最大化與位置記憶(dsh.skin.win2000.window)。

維護者在倉庫提供檢查腳本,例如:

node --check client.js
node check.mjs
node verify-metrics.mjs

在 DSH 已運行時可選用 node tools/probe-live-css.mjs 在瀏覽器側覈對注入後的 token。

適用場景與注意

適合誰:希望在 DSH Web 界面裏獲得一致的經典 Windows 2000 視覺、或做復古主題演示的開發者;分類上屬於「趣味換裝」,不改變 Harness 業務邏輯。

插件運行方式:與其它 DSH 插件一樣,客戶端腳本在瀏覽器中執行,宿主半側提供字體等靜態資源。安裝前建議瀏覽 client.js 與許可證;點陣字體爲 GPL,皮膚代碼爲 MIT。

已知限制(README 原文要點):

  • 部分規則依賴組件庫 CSS Module 類名前綴(如 [class*="bubble"]),DSH 升級後若類名變化,對應樣式可能靜默失效。
  • 全局字號按度量表設爲 11px;直角會作用於頭像、圓點、開關等,若需保留圓形需自行從通殺選擇器中排除。
  • --dsw-static-* 被重寫,個別組件若把靜態最亮檔當文字色可能出現淺底淺字;氣泡等已單獨指定文字色。
  • Windows 上 Chromium 對 -webkit-font-smoothing: none 可能不生效。

社區插件目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本皮膚是其中一條可選外觀路徑。

結尾

dsh-skin-win2000 把 DSH Web GUI 整頁換成度量表對齊的 Windows 2000 風格:灰 chrome、漸變標題欄、直角與 16px 滾動條,並通過右下角面板即時開關、可選點陣字體與暗色模式。安裝以 README 中的 dsh plugin --profile web add 爲準,0.2.0 起務必確認 profile 依賴與 patch 均已生效。

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

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

小夜