前言¶
DeepSeek Harness(DSH)的 Web 界面默认字体和字号是主机自带的主题决定的。长时间盯界面写提示词、看代码块时,有人希望界面用一套无衬线字体、等宽区用另一套字体,并且能按比例放大缩小 UI 文案或代码字号,而不必改 CSS 或 fork 主题。DSH 生态里可以把这类能力做成 profile bundle 插件;下面介绍社区插件 dsh-font(npm 包名 @citisen/dsh-font),它在 Settings → General 增加一行 Fonts,把界面字体栈、代码字体栈和两条字号轴交给设置页管理。
这是什么¶
dsh-font 是第三方 DSH Web profile bundle:Node 侧持有持久化设置命名空间并在绘制前注入样式行,浏览器侧渲染结果并注册设置行。SkillHub 社区目录收录路径为 caparisen/dsh-font,分类为「趣味换装」;源码与说明见 GitHub 仓库(README 与 package.json 中的 repository 字段)。当前资料中的版本为 0.3.1,许可证 MIT。
插件要求 dsh 0.1.5-rc.1 或更高 0.1.5-rc.x;README 写明其使用 settings.general.item 插槽、settingsScope 服务与 ctx.theme.overrideTokens,这些在 latest 与 next 发布通道中可用。较新版本(资料中提及 0.2.3 起)同时兼容 0.1.5-rc.x 与 0.1.7-alpha.1 两套设置模型;profile 中该插件条目的 id 为 ui-font,包名为 @citisen/dsh-font。
核心功能¶
Settings 里的 Fonts 行¶
安装并激活后,在 Settings → General 会出现 Fonts 行,包含两个字体查询字段,每个字段旁有一个字号输入框:
| 字段 | 作用 | 取值 |
|---|---|---|
| Interface font | 写入 CSS 变量 --dsw-font-family,作用于非代码 UI 文本 |
字体查询串(可含字重) |
| Interface text size | 紧邻的数值框:缩放硬编码的 UI 字号 | 75–150(百分数) |
| Code font | 写入 --ds-font-family-code,作用于代码块、行内代码等宽区域 |
字体查询串 |
| Code text size | 紧邻的数值框:代码块与行内代码字号 | 10–20(px) |
字号框是原生 number 输入,单位(% 或 px)显示在框内。只有完整且在范围内的数字才会写入;输入过程中的不完整数字不会落盘,失焦后会恢复为已存储值。
字体查询编辑器¶
两个字体字段不是普通单行文本,而是小型字体查询语言编辑器:整段字栈作为一段文本编辑,带语法着色、软换行,以及基于本机已安装字体列表的补全。字重写在查询串里(README 在截断处继续说明该语法)。
与对话正文字号的关系¶
对话区正文、标题、表格的字号不在本插件 Fonts 行里调节。 它们由 dsh 自带的 Settings → Appearance → Font size(ui-theme 命名空间)控制。自 0.3.1 起,本插件不再提供会话正文字号控件,不再写入 --dsh-content-font-size,配置 schema 中已移除 contentFontSize。若旧版本曾在 $DSH_HOME/settings.yaml 或 profile 的 cordis.patch.yml 里留下 contentFontSize,需要删除该键,否则 dsh 会因未知键拒绝整个 ui-font 段。
启动失败时的处理(可选阅读)¶
若启用后 dsh 无法完成启动,控制台可能出现 Failed to load plugins、@citisen/dsh-font: pending (waiting for service: settingsScope) 等。README 将「未激活的已启用插件」视为启动失败,并给出在无法启动时仍可操作的三种方式(禁用 patch、一次性 overlay 启动、或 remove 命令)。资料中的移除命令为:
dsh plugin --profile web remove @citisen/dsh-font
需要 pnpm 在 PATH 上;若无 pnpm,可手工编辑 $DSH_HOME/profiles/web/package.json 中的 dsh.profile.bundles 与对应 dependencies。临时用干净 profile 启动:
dsh --profile rescue --from-default-profile web
在 profile 的 cordis.patch.yml 中禁用该条目:
- id: ui-font
disabled: true
安装与启用¶
已抓取资料未给出 dsh plugin add 一类的一行安装命令,本文不凭插件名拼接安装步骤。请打开 SkillHub 目录页 查看与当前 dsh 版本一致的安装说明;安装前建议在 GitHub 阅读 README(含中英文)与 cordis.patch.yml,确认 bundle 行为与许可证(MIT)可接受。
DSH 插件以当前 dsh 进程的权限运行,会参与 profile 组合与设置持久化;安装第三方 bundle 前请自行审阅源码与依赖(例如 @deepseek-ai/schemastery)。
典型用法¶
- 在 Web 端打开 Settings → General,找到 Fonts。
- 在 Interface font 中编辑字体查询(可从补全选择本机字体),必要时在查询串中指定字重;在旁侧数值框设置界面字号比例(75–150%)。
- 在 Code font 中设置等宽字栈,旁侧框设置代码字号(10–20 px)。
- 保存后由插件将变量与覆盖写入主题;刷新或新开会话后应看到界面与代码区字体变化。
若从 dsh 0.1.7 升级且旧版插件条目名为 font,设置可能曾留在 $DSH_HOME/settings.yaml.imported。README 说明在条目 id 已统一为 ui-font 后,可按其步骤把仍有效的键复制回 settings.yaml 并启动一次 0.1.7,让 dsh 导入到 profile 的 Cordis patch;导入时须删掉 schema 不再声明的键(含 contentFontSize)。
适用场景与注意¶
适合希望在 不改主题源码 的前提下,为 DSH Web GUI 单独定制界面字族、代码字族及 UI/代码两条字号轴的用户。不适合指望在本插件里改 Markdown 对话正文字号——应使用 Appearance → Font size。
兼容性要点(均来自 README):
- 0.2.4 起不再借用设计系统图标,避免跨 dsh 线图标更名导致 React 渲染错误、整行 Fonts 从设置页消失。
- 0.3.1 移除会话正文字号;清理遗留
contentFontSize配置。 - 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 本身是「一切皆插件」的 harness,第三方 bundle 由维护者独立发布。
结尾¶
dsh-font 把 Web 界面的界面字体、代码字体及对应字号收敛到设置页一行控件里,并依赖 dsh 原生能力处理对话区正文字号。需要安装步骤与更新记录时,以目录页与 GitHub README 为准: