dsh-font-adjust
Manifest valid★ 1DSH 字体调整插件:字号、字体、字重、行高、文字颜色,实时预览、保存、恢复默认。
dsh-font-adjust
给 DSH(DeepSeek Harness) Web 界面加一行「字体调整」:字号、字体、字重、行高、文字颜色,拖动即生效,保存后下次打开还在,一键恢复默认。
官方设置里已经有字号和字体,但没有字重、行高、颜色,也没有把这几项放在一起的实时预览。这个插件补的就是这几项。
这是一个 DSH client 插件(
dsh.client+cordis.patch.ymlbundle),零依赖,不改动 DSH 本体。
装
node install.mjs --check # 先看会改什么,不写盘
node install.mjs # 装
脚本做三件事:把文件真拷贝进 profile/node_modules/dsh-font-adjust(不用 pnpm —— 本地路径会被建成 junction,桌面端插件列表读不到)、往 profile 的 dependencies 记一行来源、往 dsh.profile.bundles 末尾加 dsh-font-adjust。改 package.json 前自动备份成 package.json.bak-<时间戳>,重复跑幂等。
改完重启 DSH。插件管理里能看到「字体调整」,可以开关。
卸载:node install.mjs --uninstall。
用
打开 设置 → 通用,滚到底部的「字体调整」:
| 控件 | 范围 | 作用 |
|---|---|---|
| 字号 | 12–22 px | 会话正文基准。标题、表格、行高按官方那条阶梯一起缩放 |
| 字体 | 任意本机字体名,逗号分隔 | 直接填 Microsoft YaHei, sans-serif;留空用系统默认栈 |
| 字重 | 300 / 400 / 500 / 600 / 700 | 作用于正文,标题和加粗保持自己的层级 |
| 行高 | 1.2–2.2 倍 | 按当前字号换算成像素 |
| 文字颜色 | 取色器或 #rrggbb | 留空跟随主题(浅色/深色自动适配) |
- 实时预览:面板底部那块文字跟着变;同时会话正文当场就变,不用保存。
- 保存设置:写进浏览器 localStorage(键
dsh-font-adjust:v1),下次打开自动套用。不点保存,这次刷新就恢复原样。 - 恢复默认:清掉保存值,所有项回到 14px / 系统字体 / 400 / 1.71 / 跟随主题。
为什么这么写
- 字号走官方变量:官方把整条排版阶梯都挂在
--dsh-content-font-size上(--dsw-font-markdown-h1之类都是calc(21px + var(--dsh-content-font-delta)))。改这一个变量,标题/表格/行高自己跟着走,不用逐个 class 追。插件在body上写这个变量,比官方那条body.style内联样式优先级更高。 - 字体走
--dsh-font-family-text:官方 base.css 里--dsw-font-family就引用它。注入时按 CSS 规则清洗字体名(去引号尖括号、通用字族不加引号),避免拼出坏值。 - 行高走
--dsw-font-markdown-base一族:官方的正文行高是calc(24px + delta),跟字号绑死。要独立控制行高,只能覆盖这几个 shorthand 变量。 - 作用域是
[data-slot="conversation.chat.flow"]:只动会话正文,侧栏、工具栏、输入框不动,布局不会被拉坏。 - 零依赖:不 import 任何
@deepseek-ai/*的值。store 服务在静态模块表里就用它(面板自动重渲染),拿不到就退回组件内useState,两条路都不炸。
已知边界
- 只覆盖会话正文。侧栏、设置面板、输入框不跟着变——这是有意的,避免把界面骨架撑坏。要全界面生效,把
SCOPE改成'body'。 - 颜色不随主题切换。选了深色文字再切到暗色主题,字会看不清;面板里有「跟随主题」按钮一键清掉。官方字号设置页同理不管颜色。
- 不枚举本机字体。浏览器不给已安装字体列表,输入框只给常见字体建议(datalist),实际能填任意字体名,缺字体会回退。
- 保存是本机浏览器级的。localStorage 跟着浏览器走,换浏览器/清缓存就没了;不是 profile 级配置。
文件
| 文件 | 作用 |
|---|---|
package.json | 声明 bundle patch 与 dsh.client |
cordis.patch.yml | 往 profile 插一行插件 |
index.js | Host 半,空实现(逻辑全在浏览器) |
client.js | 全部功能:样式注入 + 设置面板 |
locale/zh.json、locale/en.json | 插件管理里显示的名称与说明 |
icon.svg | 插件图标 |
install.mjs | 装进 / 卸出 profile |
LICENSE | MIT |
Comments
Loading…
From the same category
DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 121/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.
★ 9.4k
↓ 8.7k/wk
MIT
TypeScript
Oct 23, 2026
dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-pluginby dsh-market
The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场
★ 8.3k
↓ 163.6k/wk
MIT
TypeScript
Oct 22, 2026
dsh plugin --profile web add dshmarketby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby Q00
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,
★ 6.3k
MIT
Python
Oct 23, 2026
by superdesigndev
OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn
★ 6k
NOASSERTION
Python
Oct 23, 2026
dsh plugin --profile web add treg-dsh