DeepSeek Harness 字体调整插件 dsh-font-tuner

前言

DeepSeek Harness(dsh)桌面端与 Web GUI 共用一套界面主题:字体族由 ui-theme 的 CSS 变量决定,改系统默认字体或长时间盯屏换一套衬线/等宽,往往得动主题源码或手写样式,升级还容易丢。@ibo-mike/dsh-font-tuner 是在客户端注入覆盖这些变量的插件,装一次对桌面内嵌的 http://127.0.0.1:19387 与同源 Web 侧一并生效。

这是什么

插件由 IBO-Mike 维护,npm 包名为 @ibo-mike/dsh-font-tuner,当前版本 0.1.0,MIT 许可。定位是:在 GUI 里用 !important 覆盖宿主字体相关 CSS 变量,并提供设置卡片;不改字号(仍走 ui-theme 的 fontSize,10–22)。

它覆盖哪些变量

宿主把字体定义成 CSS 变量,插件跨特异性覆盖,主要涉及:

变量 影响范围
--dsw-font-family 界面正文与大部分 markdown
--dsw-font-prose / --dsw-font-serif 长文正文 / 衬线标题(如 dsh-claude-style 皮肤)
--ds-font-family-code 代码块、编辑器、CodeMirror
--dsw-font-mono / --dsh-font-mono 代码 / 终端回退栈

代码字体链式继承:--ds-font-family-code 会传导到 markdown 代码与终端相关变量。未覆盖 --dsw-font-family-brand(品牌字),避免 logo 字形被误改。

安装与启用

推荐经插件管理器安装,会同步写 profile 的 package.json 依赖、dsh.profile.bundles 与 node_modules 链接。

从 GitHub 安装:

plugin_manager install_bundle → target: github:IBO-Mike/dsh-font-tuner

本地目录安装:

plugin_manager install_bundle → target: <本插件目录绝对路径>

等价手工三步:

  1. 在 $DSH_HOME/profiles/desktop/package.json 的 dependencies 增加 "@ibo-mike/dsh-font-tuner": "github:IBO-Mike/dsh-font-tuner",并在 dsh.profile.bundles 增加 "@ibo-mike/dsh-font-tuner"。
  2. 在该目录执行 pnpm install(App 自带 pnpm:.../Resources/app/runtime/pnpm/bin/pnpm.cjs)。
  3. 刷新 GUI;profile 为 patchReload: live,不生效则重启 App。

本地开发可用 file:<本插件目录绝对路径> 代替 GitHub 地址。卸载:插件管理器移除 bundle,或删掉依赖与 bundles 行后重新 pnpm install。

安装前请自行阅读仓库源码与许可证;插件在 dsh 进程权限下运行,与社区目录站点无官方从属关系。

典型用法

打开 设置 → 插件 →「字体调整」。四个输入框默认全空,表示不注入任何覆盖,装完观感与宿主一致。

  • 界面与正文:例如 "PingFang SC", "HarmonyOS Sans SC", -apple-system, sans-serif
  • 长文正文:留空保留皮肤衬线;填 @ui 跟随界面字体
  • 代码与终端:例如 "JetBrains Mono", "SF Mono", Menlo, monospace
  • 自定义 CSS:原样注入,用于 @font-face 等

改动可即时预览;「保存」写入 localStorage['dsh-font-tuner/fonts/v1'],「恢复默认」清除本地保存并回退到 config.json 或宿主原值。空字段占位符显示宿主当前值,便于对照修改。

配置优先级:

localStorage 中非空字段  >  ~/.dsh/dsh-font-tuner/config.json  >  宿主原值(不覆盖)

config.json 示例:

{
  "ui": "\"Shanggu Sans SC\", \"PingFang SC\", sans-serif",
  "prose": "\"Shanggu Serif SC\", Georgia, serif",
  "code": "\"JetBrains Mono\", \"SF Mono\", Menlo, monospace",
  "custom": "@font-face { ... }"
}

改后刷新 GUI 即可;未知键丢弃,坏 JSON 在宿主日志中 warn。

外部字体文件

系统未安装的字体可放到 ~/.dsh/dsh-font-tuner/fonts/(目录可用环境变量 DSH_FONT_TUNER_DIR 覆盖)。宿主暴露只读路由:

  • GET /dsh-font-tuner/files.json
  • GET /dsh-font-tuner/config.json
  • GET /dsh-font-tuner/fonts/<文件名>

将 .ttf/.otf/.ttc/.woff/.woff2 放入字体目录后,卡片「可用的外部字体文件」会列出;点「插入 @font-face」生成 CSS,再把字体名写入对应字体栈并保存。

适用场景与限制

适合需要在不换主题的前提下统一界面、长文、代码三块字体族,或配合本地字体文件做 @font-face 的用户。

需注意:

  • 字体名写错时浏览器静默回退,无报错。
  • 欢迎 / 登录窗口(welcome.css)不加载客户端插件,无法覆盖。
  • 不要改 app.asar 构建产物,会与 Electron 完整性校验冲突且升级失效。

更多说明与问题反馈见 GitHub 仓库,社区目录页:skillhub.cn/plugins/IBO-Mike/dsh-font-tuner。

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

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

Xiaoye