aklnaaw/dsh-claude-theme--plugins-font-switcher ↗★ 2

dsh-font-switcher

Pick the serif, sans and mono typefaces used by the Claude skin, from font files dropped into a folder. 适合需要个性化定制Claude皮肤正文、界面及代码字体的本地用户。

パッケージ
dsh-font-switcher
互換性
未検証
バージョン
0.1.0
ライセンス
NOASSERTION
最終更新
2026/09/24

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:aklnaaw/dsh-claude-theme#a2c3c30be812bd073845100c41198aa80633e422&path:plugins/font-switcher

ドキュメント

README 全文を読む ↗

dsh-font-switcher

给 Claude 皮肤换字体。三个下拉分别对应正文衬线、界面无衬线、代码等宽。

这是一个本地插件,不随皮肤仓库分发。

怎么用

  1. 打开 设置 → 字体。
  2. 把字体文件丢进页面里显示的那个文件夹。
  3. 回到设置点 重新扫描。

字体文件夹的路径是:

$DSH_HOME/skins//assets/fonts/custom/

默认皮肤 id 是 claude,所以通常是 ~/.dsh/skins/claude/assets/fonts/custom/。文件夹在插件首次加载时自动创建,里面有一份 README.txt。

怎么告诉它字体是干什么用的

两种说法,任选其一。

一、放进子文件夹

文件夹用途
serif/正文、标题、引用
sans/按钮、菜单、标签
mono/代码块、行内代码

二、写进文件名

下面这些写法都认(也支持中文名):

Inter-sans.woff2          后缀,连字符
Inter_sans.woff2          后缀,下划线
Inter.sans.woff2          后缀,点号
Inter sans.woff2          后缀,空格
sans-Inter.woff2          前缀
[serif] Newsreader.woff2  方括号标签
InterSans.woff2           无分隔符

思源宋体.woff2             中文
黑体-sans.ttf
等宽字体.otf

识别的关键词:

用途认得的词
衬线serif song 宋 衬线 明朝 ming
无衬线sans hei 黑 无衬线 gothic ui
等宽mono code 等宽 代码 编程 fixed

两种都没写,字体仍然可用,只是会归在「未识别用途」这一组里,三个下拉都能选。

支持 .woff2 / .woff / .ttf / .otf。

它是怎么生效的

皮肤的 181 条字体 token 把字族名写死在值里(--dsw-font-l-20: 400 20px/1.4 'Inter',...),这些值不经过变量,没有可以重新指向的接口。

所以这里不改 token,而是用相同的字族名重新声明 @font-face——后声明的会接管该字族。于是 'Inter' 在所有既有 token 里自动解析到你选的字体,一条 token 都不用动。

代价是:字体按整个字重区间(100–900)声明,斜体用合成。对本地换字体这种用途够用,但如果你放的是只有单一字重的文件,粗体看起来会是算法加粗的。

为什么要有 host 半边

浏览器不能列出目录,客户端无从知道用户丢了什么进去。listing 必须在文件系统上做,所以 host 半边扫描文件夹并通过一个路由把清单和文件本身送出去。

路由会按实际清单校验请求的文件名,而不是直接拼接路径——客户端传来的路径永远不接触文件系统。../ 之类会被拒绝(实测返回 400/404)。

卸载

dsh plugin --profile web remove dsh-font-switcher
# 然后重启 DSH

字体文件夹不会被动,可以留着。