前言¶
DeepSeek Harness (DSH) 的 Web UI 支持通过插件扩展功能,但默认的字体配置往往无法满足特定开发或阅读场景的需求。dsh-font-settings 插件在「设置 → 通用」中提供了 UI 字体、代码/等宽字体以及侧边栏终端字号的独立设置入口,允许通过 CSS 栈或枚举方式自定义字体,从而改善长代码阅读或终端交互的体验。
插件简介¶
- 名称:
fuzz1og/dsh-font-settings - 维护者:fuzz1og
- 许可证:MIT
- 功能定位:DeepSeek Harness Web UI 插件,提供 UI 字体、代码/等宽字体与侧边栏终端字号的设置能力。
安装与启用¶
安装前请确保 DSH 版本满足要求(>=0.1.7-alpha.1 <0.3.0)。升级 DSH 后需重新安装本插件。
1、使用默认分支安装插件:
dsh plugin --profile web add github:fuzz1og/dsh-font-settings
2、确认插件已挂载。在配置输出中查找 font-settings 条目:
dsh --profile web --dump-config | grep -A2 font-settings
3、重启 DSH 并刷新 Web UI 后生效。
核心功能¶
本插件提供了三种设置字体的方式,覆盖了从通用配置到特定场景的深度定制。
1. UI 与代码字体设置¶
在「设置 → 通用」中,提供 UI 字体和代码/等宽字体的设置项。
- 自由文本:直接输入 CSS font-family 栈(例如 'Fira Code', monospace),回车应用。
- 内置候选:面板内置了常用字体家族列表,点击即可快速选择。
- 兼容性:此功能在所有浏览器中均可用,且无需任何特殊权限。
2. 侧边栏终端字体与字号¶
侧边栏终端(xterm)的字体栈由插件写死,因此无法直接修改。本插件通过 @font-face 别名和 CSS size-adjust 属性来实现间接控制。
- 字体生效:必须使用
@font-face定义ui-monospace、SFMono-Regular等别名,并使用local()引用字体的 FullName 或 PostScript Name。直接输入字体族名(如Consolas)通常无法生效。 - 字号调整:终端的字号(
fontSize: 13)是写死的,插件通过size-adjust属性按比例缩放。若别名不生效,字号缩放也会失效。
3. 本机字体枚举(Chromium 桌面版增强)¶
在 Chromium 桌面版浏览器中,插件提供了「读取本机字体」按钮。
- 操作:点击按钮调用 window.queryLocalFonts() API。
- 结果:浏览器会枚举本机已安装字体,按 family 归并后缓存到 localStorage,供下拉选择。
- 限制:此功能需要安全上下文(HTTPS 或 localhost),且仅限 Chromium 桌面版。Firefox / Safari / Chrome Android 等环境按钮会置灰。
注意事项与限制¶
- 权限:插件运行期零权限,不读写文件、不发起网络请求、不访问凭据。
- 版本兼容:要求 DSH
>=0.1.7-alpha.1 <0.3.0。低于0.1.7-alpha.1的版本因缺少configForms服务而不兼容。 - 终端字体限制:
local()只匹配fullName和postscriptName,不支持字体家族名或 typographic family 名。读取本机字体后,确保输入值与枚举结果一致。 - 持久化:当使用远程 GUI 打开时,偏好存储在
localStorage中(per-device);在本地(loopback)时则写入宿主配置。