DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

BakaCirno233 /

BakaCirno233/dsh-font-settings

Verified

DSH font settings plugin for DeepSeek Harness Desktop

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@050a72f1

dsh-font-settings

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 实现(简写包含字重,改子变量无效)。

搜索与分组

  • 字体下拉按风格分组(西文:无衬线体 / 衬线体;中文:黑体 / 宋体 / 楷体;代码:Nerd Font / 等宽)
  • 顶部搜索框实时过滤所有字体列表
  • 自定义字体自动记录最近使用(上限 5 个)

导入导出

  • 导出配置:将当前所有字体设置下载为 JSON 文件
  • 导入配置:从 JSON 文件恢复设置并立即应用
  • 格式:{ format: "dsh-font-settings", version: 1, settings: { ... } }

持久化

  • settings.yaml(优先):写入 <dshHome>/settings.yaml 的 ui-font 段,跨浏览器/跨实例同步
  • localStorage(回退):本地浏览器持久化,settings.yaml 不可用时自动降级

📦 安装

在 chat profile 下安装:

dsh plugin --profile chat add github:BakaCirno233/dsh-font-settings

安装后需重启 DSH Desktop 生效。

⚙️ 使用

  1. 打开 DSH Desktop 的 设置页
  2. 找到 「字体设置」 面板
  3. 调整字体/字号/字重/代码选项,实时预览
  4. 点 「保存设置」 写入本地存储与 settings.yaml
  5. 面板底部显示当前持久化模式(已同步 / 仅本进程 / 仅浏览器本地)

🔧 本地开发

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) 简写)
  • 字重控制同样需要重写简写 token(如 --dsw-font-markdown-base 嵌入 weight 400)
  • host 端 index.js 使用 CommonJS(package.json 未设置 "type": "module"),避免 DSH 以 ESM 解析导致崩溃
  • client 端须在 module.exports 声明 inject: ["slots"] 以正确获取 cordis 服务
  • ctx.get("settingsScope") 是可选查询(不要求 inject 声明),但在 bundle 插件上下文中服务可能晚于 apply 激活,实现中采用有限次重试(8s 内)确保绑定
  • 配置优先级:host settings.yaml > localStorage > 默认值;写时双写

📄 License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 050a72f1c61c

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout