dsh-custom-skin:DSH Web 界面字体与主题定制

前言

DeepSeek Harness (DSH) Web GUI 插件。旨在解决默认界面字体与代码字体与本地开发环境不匹配、视觉风格难以统一的问题。该插件由用户 v587d 维护,允许通过 Web UI 或控制台配置,实现界面字体、代码字体及多套主题(Border / Nord / Twilight / GitHub / Atom One)的切换。

核心功能

  1. 字体自定义:支持分别配置界面字体和代码字体,覆盖 DSH 默认样式变量 --dsw-font-family 与 --ds-font-family-code。
  2. 主题切换:提供多套主题色板,通过 ctx.theme.overrideTokens 覆盖 --dsw-alias-* 令牌(需 light/dark 成对)。
  3. 即时编辑:在 DSH 设置页的 Custom Skin 分节中可直接编辑配置。
  4. 本地持久化:偏好设置存储于浏览器 localStorage(键 dsh-custom-skin.v1),刷新页面后保持。
  5. 宽表格修复:修复宽表格在 hover 时的高度抖动问题,固定 overflow-x 与 padding。

安装与启用

使用官方 CLI 安装插件:

dsh plugin --profile web add github:v587d/dsh-custom-skin

安装完成后需重启 Web 进程以加载资源:

dsh web

使用方法

  1. 打开设置:在 DSH Web UI 中导航至 设置 -> Custom Skin(若当前 DSH 版本支持 settings.section 注入)。
  2. 选择主题:在 Color theme 下拉框中选择预设主题,如 GitHub(默认)、Nord、Atom One 等。
  3. 配置字体:填写本机已安装的字体名称。例如:
    • UI:"Microsoft YaHei", sans-serif
    • Code:"Fira Code", Consolas, monospace
  4. 手动配置:若缺少设置页,可在浏览器控制台执行以下命令手动写入配置:
localStorage.setItem('dsh-custom-skin.v1', JSON.stringify({
  uiFont: '"Microsoft YaHei", sans-serif',
  codeFont: '"Fira Code", Consolas, monospace',
  theme: 'github'   // 'default' | 'border' | 'nord' | 'twilight' | 'github' | 'atom-one'
}))
location.reload()

注意事项

  • 系统字体依赖:插件不打包字体文件,必须确保操作系统已安装目标字体。
  • 插件冲突:若其他主题/皮肤插件也定义了同一批 CSS 变量,后加载的插件会覆盖先加载的配置。
  • 卸载残留:卸载插件后,localStorage 中的配置仍会保留,需手动清理。
  • 开发约束:lib/client.js 必须采用经典脚本形态(无顶层 export/import),DSH 使用 <script src> 加载。
  • 令牌覆盖规范:主题颜色覆盖应使用 ctx.theme.overrideTokens,不要直接手写 :root 覆盖。
  • Markdown 样式:美化 CSS 依赖 [class*="_markdown_"] 与 body[data-ds-dark-theme] 选择器。
  • 表格抖动修复:插件无条件输出 --dsh-scrollbar-width 并用 !important 固定 .md-table-wide 的 overflow-x,代价是横向滚动条常驻显示。

链接

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

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

小夜