为 DSH Web GUI 切换字体的插件:99 个界面字体 + 31 个代码字体,中西文搭配回退栈,即选即生效并通过 localStorage 持久化。
- 语言
- JavaScript
- 分支
- main
安装
$ dsh plugin --profile web add github:tianyhjg-lab/dsh-font在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 tianyhjg-lab/dsh-font:先查看仓库 https://github.com/tianyhjg-lab/dsh-font 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
给 DSH Web GUI 换字体的插件:99 个界面字体(含中英文黑体/宋体/楷仿/手写/展示)和 31 个等宽代码字体,下拉里每项都用各自字体实时渲染,选完立即全局生效,刷新不丢。
核心能力
- 切换界面字体:在「设置 → 常规 → 字体」选一个,覆盖整个 Web 界面的正文、按钮、侧边栏、标题、菜单
- 切换代码字体:单独选一个,覆盖代码块、终端、JSON 树、diff 等所有等宽场景
- 99 个界面字体分组选择:中文黑体 / 中文宋体 / 中文楷体仿宋 / 中文手写创意 / 西文衬线 / 西文无衬线 / 西文展示手写 共 7 组
- 31 个代码字体选项:覆盖 Consolas、Cascadia Code、JetBrains Mono、Fira Code、Source Code Pro、Iosevka、Maple Mono 等常见等宽
- 中西文搭配回退栈:选中文字体自动接一个西文衬底,选西文字体自动接一个中文衬底,混排不突兀
- 即选即生效:选完不刷新页面立即全局换肤
- 选择持久化:保存到 localStorage,下次打开还在
技术实现
- 语言: JavaScript(ESM 入口 + 浏览器端手写 CJS bundle,零构建)
- 关键依赖:
@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale、react、@deepseek-ai/cordis(均为 peerDependencies) - 架构模式: Cordis 双端插件 —
index.js是 host 侧 no-op 加载入口,cordis.patch.yml注入 id=font的 loader 项;浏览器端通过window.__ModuleLoader__.load注册 React 组件,向slots.inject("settings.general.item")注册设置行,用locale.register注册中英文字典,最终通过覆盖:root上的--dsw-font-family和--ds-font-family-code两个 CSS 变量实现全局换肤 - 入口文件:
index.js(host 侧)+client.js(浏览器侧,含全部 UI 与样式注入逻辑)
适用场景
DSH Web 端用户希望替换默认字体以缓解长时间阅读疲劳、让中英文混排更顺眼、或用某款已装好的品牌字体(比如思源黑体、霞鹜文楷、得意黑)统一视觉风格;以及代码重度用户希望代码块与终端使用 JetBrains Mono / Fira Code / Maple Mono 等更好的等宽字体。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | >=0.1.0-rc.6 | package.json#peerDependencies 声明依赖 @deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-slots 均 ^0.1.0-rc.6;@deepseek-ai/cordis ^4.0.1 |
| Node.js | 未声明 | package.json 未声明 engines;scripts.check 使用 node --check,无构建步骤 |
| 平台 | Web | dsh.client.platform: "web",仅注入到 DSH Web GUI;桌面/移动浏览器亦可,但底层必须是 DSH Web |
| 原生模块 | 无 | 不打包字体文件、不下载字体、不涉及原生模块 |
安装方式
dsh plugin --profile web add github:tianyhjg-lab/dsh-font
配置项
本插件无需额外配置文件,所有选择都在「设置 → 常规 → 字体」页内完成。设置行包含两个下拉与一行预览:
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 界面字体 | 单选(99 项) | 覆盖整个 Web 界面的字体,影响正文、按钮、侧边栏、标题、菜单;分组为 中文黑体 / 中文宋体 / 中文楷体仿宋 / 中文手写创意 / 西文衬线 / 西文无衬线 / 西文展示手写 | 默认(DSH 内置) |
| 代码字体 | 单选(31 项) | 覆盖所有等宽场景(代码块、终端、JSON 树、diff) | 默认(DSH 内置) |
存储键:浏览器 localStorage 的 dsh-font:ui(界面)与 dsh-font:code(代码),选择「默认」会清掉对应键。识别为非法值时自动回落默认。
常见问题
Q: 安装后字体选项在哪?
A: 打开「设置 → 常规」,最下方会多出一行「字体」。界面字体 99 选 1、代码字体 31 选 1,下拉里每条都用各自字体渲染,下方有实时预览条。
Q: 需要在本机安装字体文件吗?
A: 需要。插件不打包、也不下载任何字体,font-family 列表只是名字。如果电脑没装所选字体,浏览器会自动 fallback 到栈里的下一项,所以选了不存在的字体也不会报错,只是看起来跟没换一样。
Q: 选择会记住吗?换浏览器或清缓存会丢吗?
A: 选择保存在浏览器 localStorage(dsh-font:ui 与 dsh-font:code),同源刷新/重启都还在。换浏览器、清缓存或换域名后才会丢,需要重新选一次。
Q: 怎么恢复默认字体?
A: 在设置里把界面字体和代码字体都选回「默认」即可,注入的样式会被清空,回到 DSH 内置字体。
Q: 商用时这些字体有授权问题吗?
A: 插件本身不包含任何字体文件,但字体的使用授权(尤其商用)由用户自己确认。思源/霞鹜/更纱等 OFL/Apache 开源可再用;方正/汉仪/华文等随系统授权,商用需自行评估。
Q: 卸载怎么卸?
A: 删掉依赖和 profile 的 bundles 注册并重启 dsh web 即可。卸载后注入的 <style> 元素会随插件卸载被清掉,不留残留。
Q: 看不到「字体」这一行怎么办?
A: 检查是否安装到了 web profile、是否在「设置 → 常规」页面最底部,并确认 dsh web 已重启;如果仍然没有,看浏览器控制台有无模块加载报错。
上手难度
入门 — 装完即用,不需要读文档、不需要写配置,打开设置下拉选字体就行。
已知问题与限制
- 仅引用本机已装字体:未安装的字体自动回退到 fallback 栈,渲染不会失败但视觉与预期不一致;想要准确效果请自行安装对应字体文件
- 选择存在浏览器本地:localStorage 是同源限定,换浏览器/换域名/清缓存都会丢失,与 DSH 主账号配置不同步
- 不打包任何字体文件:
files数组里只有index.js/client.js/cordis.patch.yml/README.md,插件包体极小但代价是用户必须自己解决字体来源 - 仅支持 Web GUI:
dsh.client.platform锁定为web,桌面端与 headless 客户端不会生效 - 字体商用授权需用户自查:方正、汉仪、华文、微软雅黑等系统/Office 字体未随插件授权,商用需用户自行评估
为 DeepSeek Harness Web GUI 换字体的插件:99 个界面字体 + 31 个代码字体, 中文(黑体/宋体/楷仿/手写创意)+ 西文(衬线/无衬线/展示)全分组覆盖, 中西文自动搭配,即选即生效,刷新不丢。
- 界面字体(改
--dsw-font-family):正文、按钮、侧边栏、标题、菜单 - 代码字体(改
--ds-font-family-code):代码块、终端、JSON 树、diff
安装
# 1. 在 web profile 的 package.json 中注册(dependencies + dsh.profile.bundles)
# 2. 在 profile 目录安装
cd $env:USERPROFILE\.dsh\profiles\web
pnpm install --no-frozen-lockfile
# 3. 重启 dsh web,然后在 设置 → 常规 → 字体 中选择
使用
打开 设置 → 常规,找到「字体」行:
- 界面字体:99 个选项,按下拉分组:默认 / 中文黑体 / 中文宋体 / 中文楷体仿宋 / 中文手写创意 / 西文衬线 / 西文无衬线 / 西文展示手写
- 代码字体:31 个选项(默认 / 30 个等宽)
- 下拉选项以各自字体渲染,下方有实时预览条;选择立即全局生效
- 「默认」恢复内置字体
字体清单
界面字体 — 中文 · 黑体(29)
微软雅黑、思源黑体、鸿蒙黑体、苹方、阿里巴巴普惠体、小米 MiSans、 OPPO Sans、vivo Sans、荣耀 Honor Sans、得意黑、站酷快乐体、站酷文艺体、 站酷小薇 LOGO 体、站酷高端黑、站酷庆科黄油体、优设标题黑、庞门正道标题体、 钉钉进步体、方正黑体、方正中等线、方正兰亭黑、方正准圆、汉仪旗黑、汉仪文黑、 华文细黑、更纱黑体 Sarasa UI SC、黑体、等线、幼圆
界面字体 — 中文 · 宋体(8)
宋体、思源宋体、华文中宋、方正小标宋简体、方正书宋简体、 京华老宋体、悠哉明朝、装甲明朝
界面字体 — 中文 · 楷体仿宋(8)
楷体、华文楷体、仿宋、仿宋_GB2312、方正仿宋简体、朱雀仿宋、 霞鹜文楷、孤鹜别体
界面字体 — 中文 · 手写创意(11)
华文行楷、华文琥珀、华文彩云、隶书、方正卡通体、方正综艺体、 阿里巴巴刀隶体、汉仪尚巍手书、演示春风楷、沐瑶随心手写体、沐瑶软笔手写体
界面字体 — 西文 · 衬线(14)
Times New Roman、Cambria、Georgia、Garamond、Palatino Linotype、 Book Antiqua、Baskerville、Didot、Bodoni MT、Goudy Old Style、 Rockwell、Century Schoolbook、Bookman Old Style、Constantia
界面字体 — 西文 · 无衬线(19)
Arial、Calibri、Verdana、Tahoma、Segoe UI、Helvetica、Trebuchet MS、 Futura、Century Gothic、Gill Sans、Franklin Gothic、Lucida Sans、Candara、 Corbel、Optima、Avant Garde、Geneva、Arial Narrow、Bahnschrift
界面字体 — 西文 · 展示手写(9)
Comic Sans MS、Brush Script MT、Lucida Handwriting、Segoe Script、 Segoe Print、Copperplate、Impact、Arial Black、Papyrus
代码字体(30 个等宽)
Consolas、Cascadia Code、Cascadia Mono、JetBrains Mono、Fira Code、 Fira Mono、Source Code Pro、IBM Plex Mono、Roboto Mono、Ubuntu Mono、 Inconsolata、Hack、Droid Sans Mono、DejaVu Sans Mono、Liberation Mono、 PT Mono、Space Mono、Victor Mono、Iosevka、Maple Mono、SF Mono、Menlo、 Monaco、Meslo、Courier New、Cousine、更纱黑体 Sarasa Mono SC、 等距更纱黑体 Sarasa Term SC、思源等宽 Noto Sans Mono、霞鹜文楷等宽
原理
Web shell 的所有字号 token(--dsw-font-*、--dsw-font-markdown-*)都引用
:root 上的两个变量;插件注入一个 <style> 覆盖这两个变量,一处生效、全局换肤,
不打包任何字体文件、不联网、不涉及付费字体。选择存于 localStorage
(dsh-font:ui / dsh-font:code)。
License / 字体授权声明
- 本插件不包含任何字体文件,仓库中只有代码与字体名称字符串;
字体名称引用(
font-family)是行业标准做法,不构成对字体版权的复制或分发。 - 列表中的字体由用户自行安装,实际渲染使用用户本机已安装的字体; 各字体的使用授权(尤其商用场景)由用户自行确认与负责。
- 字体授权速览(仅作提示,以各家官方协议为准):
- 开源可再分发(OFL/Apache 等):思源黑体/宋体、霞鹜文楷、得意黑、 更纱黑体、孤鹜别体、朱雀仿宋、Cascadia Code、JetBrains Mono、Fira Code、 IBM Plex、Source Code Pro、Iosevka、Maple Mono 等;
- 免费商用(打包需遵守各家协议):MiSans、OPPO Sans、vivo Sans、 HarmonyOS Sans、阿里巴巴普惠体、钉钉进步体、站酷系列、优设标题黑、 演示/沐瑶系列等;
- 不可再分发(随系统/Office 授权,商用需评估):方正全系、汉仪全系、 华文全系、微软雅黑/宋体/黑体/仿宋/楷体/等线等系统字体、 Times New Roman / Arial / Calibri 等 Office 字体、SF Mono / Menlo / Monaco。
开发
node --check client.js # 语法检查(零构建,手写 CJS bundle)
cordis.patch.yml— host 侧 loader 入口(id: font)index.js— host 半部(no-op)client.js— 浏览器半部(全部功能)
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/tianyhjg-lab/dsh-font)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。