aklnaaw/dsh-claude-theme--plugins-font-switcher ↗★ 2
dsh-font-switcher
为Claude皮肤自定义替换本地字体文件 适合需要个性化定制Claude皮肤正文、界面及代码字体的本地用户。
安裝
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 皮肤换字体。三个下拉分别对应正文衬线、界面无衬线、代码等宽。
这是一个本地插件,不随皮肤仓库分发。
怎么用
- 打开 设置 → 字体。
- 把字体文件丢进页面里显示的那个文件夹。
- 回到设置点 重新扫描。
字体文件夹的路径是:
$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
字体文件夹不会被动,可以留着。