dsh-font-picker:在 DSH 设置里选 UI / 代码 / 终端字体

前言

DeepSeek Harness(DSH)的 Web 界面默认字体来自系统与主题,想换 UI 或编辑器里的等宽字体,通常要改 CSS、改用户样式,或依赖浏览器/OS 全局设置,改完也不一定能跟着 DSH 会话持久化。维护者 abluefan 的 dsh-font-picker 把这件事收进「设置 → General」:枚举本机已装字体、选中即套用、写入 $DSH_HOME/font-picker.json,需要时还可重新枚举,不必为装新字体专门重启整套环境。插件在社区目录中归类为「趣味换装」。

这是什么

dsh-font-picker 是 DSH 的 Web 侧插件(engines.dsh 要求 DSH ≥ 0.2.1,package 中写明 >=0.2.1-rc.2)。它在 General 设置页增加字体选择(README 写明 UI 字体、代码字体、终端字体),面向在本机 DSH 里长期写提示词、看代码块的用户。当前 GitHub 星标为 0;源码与说明见 GitHub 仓库,目录页:skillhub.cn/plugins/abluefan/dsh-font-picker。

核心功能

枚举与排序

在 Windows 上读取注册表 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 与 C:\Windows\Fonts,通过 reg query 拉字体列表,不引入第三方依赖。列表按字体文件 birthtime(安装时间)从新到旧排序。

即时套用与持久化

选中的字体立刻作用于界面;选择保存在:

$DSH_HOME/font-picker.json

首屏会在 index.html 注入当前选择的 <style> 与 window.__DSH_FONT_PICKER__。完整字体清单不注入 HTML(体量过大),改由同源 HTTP API 按需拉取。

重新枚举

安装新字体后,可在界面触发刷新,无需重启 DSH 即可更新列表(与下方生命周期说明配合使用)。

HTTP API

前端通过同源 fetch 调用:

方法 路径 作用
GET /font-picker/api/fonts?q=&limit= 字体清单(过滤 + 分页,默认 80,上限 300)
GET /font-picker/api/state 当前选择
POST /font-picker/api/set 写入选择
POST /font-picker/api/refresh 重新枚举

生命周期与 Chromium 节拍

字体枚举挂在 tapIndex:每次页面加载(新开窗口或 F5)检查 TTL(30 秒),过期则重新枚举。这与 Chromium 进程级缓存字体枚举的行为一致——重开窗口即触发重新枚举,与「装完字体后重开窗口」的节奏对齐。

安装与启用

环境要求:DSH ≥ 0.2.1;插件当前平台说明为 Windows。

通过插件市场(推荐)

在 awesome-dsh-plugin 目录中查找本插件,或在 DSH 插件 → 发现 里搜索 dsh-font-picker 并安装。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

手动安装

任选一种方式,不要两种同时用。

A. 复制目录 + 手写 insert(适合本地开发)

  1. 将插件目录复制到 $DSH_HOME/profiles/web/node_modules/dsh-font-picker/。
  2. 在 $DSH_HOME/profiles/web/cordis.patch.yml 增加:
- insert:
    - id: font-picker
      name: 'dsh-font-picker'
  1. 重启 DSH,或让 Loader 重载配置。

B. npm 包已发布时使用 dsh plugin add

dsh plugin --profile web add dsh-font-picker

使用 B 后,包名会进入 dsh.profile.bundles,由包内自带的 cordis.patch.yml 注册;不要再做 A 的第 2 步,否则同一 id 会被插入两次,DSH 启动会失败。

典型用法

  1. 按上一节完成安装并启动/重载 Web profile。
  2. 打开 DSH 设置 → General,在插件增加的项中选择 UI 字体、代码字体(及 README 中的 终端字体)。
  3. 界面应立即切换;若需浏览长列表,由 /font-picker/api/fonts 分页加载(默认 limit=80)。
  4. 本机新装字体后,使用设置中的刷新/重新枚举(对应 POST /font-picker/api/refresh),或在新窗口/F5 后依赖 tapIndex 的 TTL 逻辑更新列表。

适用场景与注意

  • 适合:在 Windows 上跑 DSH Web 界面、希望 UI 与代码区字体可配置且可持久化的开发者。
  • 不适合:非 Windows 环境——README 仅声明 Windows 平台支持。
  • 安全与信任:插件以当前 DSH 进程权限读注册表与字体目录;安装前请阅读 源码 与 MIT 许可证(见 package.json),确认符合你的策略。
  • 版本:npm 包 dsh-font-picker 在资料中为 0.2.0;说明中提及 0.2.1 为 DSH 迁移版,Cordis 插槽未变。

结尾

dsh-font-picker 把「系统字体 → DSH 界面」收成设置页里的几步操作:枚举、即时套用、JSON 持久化,并用 API 与 tapIndex TTL 控制清单体积与刷新节奏。需要安装或源码时,见 目录页 与 GitHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜