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 均已生效。

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

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

Xiaoye