为侧边栏终端选字体字号,修复图标方块
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/5 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add HTROY/dsh-terminal-font该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-terminal-font(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 22:47:56
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 选择终端字体字号
- 修复图标显示方块
DeepSeek Harness 插件:在设置中为侧边栏终端选择字体与字号,修正 oh-my-posh / Powerline / Nerd Font 图标显示为方块的问题。
README
由 DeepSeek 最新模型翻译生成dsh-terminal-font
给 DeepSeek Harness(dsh)右侧边栏的终端设置字体,修正 oh-my-posh / Powerline / Nerd Font 图标显示成方块(豆腐块)的问题。
一个 dsh 插件,从设置里给侧边栏终端设置字体,让 oh-my-posh、Powerline 和 Nerd Font 字形正常渲染,而不是显示成方块。
- 设置位置:设置 → 终端(Settings → Terminal)
- 可设:启用开关、字体名(带常用 Nerd Font 建议)、字号、实时字形预览
- 已在 dsh 0.2.0-rc.2(Windows 桌面版 + PowerShell 7 + oh-my-posh)上验证
- 依赖:@deepseek-ai/dsh-client-ui-sidebar-terminal(读取其内部接缝,见下)
问题是什么
@deepseek-ai/dsh-client-ui-sidebar-terminal 创建 xterm 实例时把字体写死,且没有暴露任何配置入口:
new Terminal({
minimumContrastRatio: 4.5,
cursorBlink: true,
fontSize: 13,
展开完整文档(README 剩余 1 节)
dsh-terminal-font
给 DeepSeek Harness(dsh)右侧边栏的终端设置字体,修正 oh-my-posh / Powerline / Nerd Font 图标显示成方块(豆腐块)的问题。
一个 dsh 插件,从设置里给侧边栏终端设置字体,让 oh-my-posh、Powerline 和 Nerd Font 字形正常渲染,而不是显示成方块。
- 设置位置:设置 → 终端(Settings → Terminal)
- 可设:启用开关、字体名(带常用 Nerd Font 建议)、字号、实时字形预览
- 已在 dsh 0.2.0-rc.2(Windows 桌面版 + PowerShell 7 + oh-my-posh)上验证
- 依赖:@deepseek-ai/dsh-client-ui-sidebar-terminal(读取其内部接缝,见下)
问题是什么
@deepseek-ai/dsh-client-ui-sidebar-terminal 创建 xterm 实例时把字体写死,且没有暴露任何配置入口:
new Terminal({
minimumContrastRatio: 4.5,
cursorBlink: true,
fontSize: 13,
fontFamily: "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
scrollback: /* ... */ 0
});
Windows 上这套字体栈最终落到 Consolas,而 Consolas 没有 Nerd Font 的私用区(PUA)字形,所以 oh-my-posh 的 / / 等图标就显示成方块。
安装
需要 dsh 具备 profile 管理能力(桌面版或 dsh web)。
方式一:设置界面
1. 打开 设置 → 插件 → 添加插件;
2. 填入 github:HTROY/dsh-terminal-font;
3. 确认安装(会有一项 dsh 兼容性检查),完成后插件立即生效。
方式二:命令行
dsh plugin add github:HTROY/dsh-terminal-font --profile desktop
方式三:本地源码
git clone https://github.com/HTROY/dsh-terminal-font.git
dsh plugin add /absolute/path/to/dsh-terminal-font --profile desktop
安装后可在 设置 → 插件 里看到 dsh-terminal-font(禁用/卸载同样在那里)。
使用
1. 打开 设置 → 终端。
2. 字体 留空即使用推荐字体栈(依次尝试 CaskaydiaCove Nerd Font Mono、 JetBrainsMono Nerd Font Mono、CaskaydiaMono Nerd Font Mono、Hack Nerd Font Mono、 MesloLGS NF,最后回退到内置字体栈)——只要机器上装了其中任意一款,图标就会正常显示。
3. 也可以填任意已安装的字体名,输入框的下拉列表给出常见 Nerd Font 名称。
填写的内容会作为 "<字体名>", <内置字体栈> 使用;若填写内容含逗号,则按完整的 CSS 字体列表使用。
4. 字号 用 −/+ 调整;选 自动 表示沿用终端内置字号。改字号后终端会自动重新适配列宽(xterm 网格与 PTY 一起更新)。
5. 预览 会实时显示 Powerline 分隔符与常用图标;显示为方块说明该字体未安装或名字不对。
设置保存在浏览器 localStorage(键 dsh-terminal-font.settings.v1)——它描述的是"这台机器用什么字体画终端",属于浏览器侧偏好,而不是 Host 端配置。更改会立即作用于已打开的终端。
工作原理
终端插件把 xterm 实例存在 React 的 useRef 里:既没有全局单例,也不会在 DOM 上留下实例引用,因此插件从三个受限但完整的接缝接入(全部在 client.js,可逆且透明):
1. window.__ModuleLoader__.load
包装懒加载块 @deepseek-ai/dsh-client-ui-sidebar-terminal/client.terminal.js 的 factory,使该 chunk 拿到的 react 模块是一个 Proxy —— 除 useRef 外所有导出原样透传。
2. useRef 代理 TerminalScreen 通过 terminal.current = xterm / fit.current = addon 保存实例;代理在赋值瞬间拿到实例,写入 xterm.options.fontFamily / xterm.options.fontSize。
3. window.ResizeObserver
终端自己的 measure() 回调会同时调整 xterm 网格与 PTY 尺寸;换字号后重放它即可正确重新适配,避免"显示变了但 shell 还以为旧列宽"的错位。
对于插件加载前就已经打开的终端,另有一条兜底路径:React 会在它渲染过的 DOM 节点上留下 fiber, TerminalScreen 的 hook 链里就有 xterm 与 FitAddon 实例,组件 props 里还有终端 model,因此插件可以照搬终端自己的 fitScreen 逻辑完成同步。
关闭开关或选择"自动"字号时,插件还原该终端原本的字体与字号(安装时记录,而非硬编码常量)。
已知限制
- 依赖 @deepseek-ai/dsh-client-ui-sidebar-terminal 的内部实现(chunk 名、useRef 用法、 ResizeObserver 回调语义、React fiber 结构)。该包升级后若这些细节变化,字体可能不再生效;届时请按上文"工作原理"的 1–3 条重新核对,并欢迎提 issue。
- 字体必须安装在运行浏览器的那台机器上(桌面版即本机)。插件不打包字体文件。
- 只影响 Web 终端渲染;dsh 的 shell 工具输出(bash/pwsh 工具卡片)不受影响。
- Host 侧只有一行占位插件,不注册任何服务、不联网、不读写文件。
开发与测试
插件是纯 JavaScript,无需构建:
dsh-terminal-font/
├─ package.json # dsh.bundle / dsh.client 清单 ├─ cordis.patch.yml # bundle 层:插入 terminal-font 插件行 ├─ index.js # Host 侧占位(apply 为空) ├─ client.js # 全部逻辑:设置页 + 三个接缝 + fiber 兜底 ├─ locale/{en,zh}.json # 插件商店展示文案 ├─ icon.svg └─ test/verify.mjs # 机制测试
测试用假的 module loader / React / ResizeObserver / xterm 实例驱动 client.js,覆盖:包注册、chunk factory 包装、useRef 捕获、字体写入、换字号后重放 fit 回调、禁用还原、以及「插件加载前已存在的终端」的 fiber 兜底(含通过 props 取回 model 完成 xterm + PTY 同步):
node test/verify.mjs
说明:该测试验证的是插件与 dsh 内部接缝之间的机制,不代表浏览器里的最终视觉结果。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
HTROY/dsh-terminal-font
为侧边栏终端选字体字号,修复图标方块
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9