dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH font settings plugin for DeepSeek Harness Desktop
DSH(DeepSeek Harness)字体设置插件:在设置页自由定制全局字体、字号、字重,支持中英文字体分离、独立代码字号与字体、回滚字体兜底。使用系统已安装字体,无需联网加载。配置持久化到 <dshHome>/settings.yaml,跨实例同步。
| 设置项 | 说明 |
|---|---|
| 西文字体 | 拉丁字母、数字、符号优先使用(Inter、Roboto、Segoe UI 等预设 + 自定义) |
| 中文字体 | 汉字与中文标点独立设置(微软雅黑、思源黑体、霞鹜文楷等预设 + 自定义) |
| 代码字体 | 代码块/终端等宽字体(JetBrains Mono、Fira Code、Cascadia Code 等 + 自定义) |
| 回滚字体 | 主字体缺字时兜底显示,正文和代码都生效 |
字体栈自动组合:西文 → 中文 → 回滚 → sans-serif,浏览器按序匹配,缺字自动回退。
| 设置项 | 范围 | 说明 |
|---|---|---|
| 全局内容字号 | 10~24px | 消息正文,标题、表格等自动派生 |
| 代码字号 | 9~20px | 代码块与行内代码独立控制(默认 12px,保持 DSH 原样) |
字号的底层使用 --dsh-content-font-size(内容)和直接重写 --dsw-font-markdown-code 简写 token(代码),DSH 自动派生行高等偏移。
| 设置项 | 范围 | 说明 |
|---|---|---|
| 全局正文 | 300/400/500/600/700 | 消息正文、表格小字 |
| 标题 | 300~700 | h1~h4 各级标题(默认 700) |
| 界面元素 | 300~700 | 菜单、按钮、标签等 UI 文字 |
| 代码 | 300~700 | 代码块与行内代码、终端 |
通过重写 DSH 的 --dsw-font-* CSS 简写 token 实现(简写包含字重,改子变量无效)。
{ format: "dsh-font-settings", version: 1, settings: { ... } }<dshHome>/settings.yaml 的 ui-font 段,跨浏览器/跨实例同步在 chat profile 下安装:
dsh plugin --profile chat add github:BakaCirno233/dsh-font-settings
安装后需重启 DSH Desktop 生效。
git clone https://github.com/BakaCirno233/dsh-font-settings.git
cd dsh-font-settings
将插件 link 进 profile:
// C:\Users\<你>\.dsh\profiles\chat\package.json
{
"dependencies": {
"dsh-font-settings": "link:D:/path/to/dsh-font-settings"
},
"dsh": {
"profile": {
"bundles": [ "...", "dsh-font-settings" ]
}
}
}
link:依赖在 pnpm 中通过 junction 实现,repo 文件改动即时生效到 profile。修改后重启 DSH 加载新 bundle。
dsh-font-settings/
├── package.json # 插件清单(dsh.client.inject + dsh.bundle.patch 声明)
├── index.js # host 端入口:注册 ui-font 设置命名空间
├── client.js # 浏览器端:设置面板 + 字体应用引擎 + settings.yaml 同步
├── cordis.patch.yml # bundle 挂载声明
├── ARCHITECTURE.md # DSH 字体 token 体系调研与架构决策
└── 需求文档.md # 原始功能需求
--dsw-font-family CSS 变量控制全局字体;西文+中文分离后手动组合字体栈--dsh-content-font-size 控制内容字号,DSH 自动衍生 h1~h4/base/table/small 各级字号与行高--dsw-font-markdown-code / --dsw-font-markdown-code-block font 简写 token 实现(改 -font-size 子变量无效,因为组件引用的是 font: var(--token) 简写)--dsw-font-markdown-base 嵌入 weight 400)index.js 使用 CommonJS(package.json 未设置 "type": "module"),避免 DSH 以 ESM 解析导致崩溃module.exports 声明 inject: ["slots"] 以正确获取 cordis 服务ctx.get("settingsScope") 是可选查询(不要求 inject 声明),但在 bundle 插件上下文中服务可能晚于 apply 激活,实现中采用有限次重试(8s 内)确保绑定MIT