dsh-bg-studio:给 DSH Claude 风格主题加背景与字号微调

前言

DSH(DeepSeek Harness)的 dsh-claude-style 主题界面样式由上游模块控制,只留了一个对话字号钩子。想调整侧栏字号、顶部导航字号、背景图或透明度,没有原生入口。dsh-fonttune 曾尝试统一调整界面字号与行高,但最终退役,因为那些 ladder token 只被对话区的 widget 消费,对侧栏无效。

dsh-bg-studio 插件通过原生设置分区,直接对侧栏 CSS module 选择器下手,为 dsh-claude-style 主题增加背景图、内容透明度、侧栏与顶部导航字号、顶部导航独立折叠等功能。

插件定位

这是一个 DSH 插件,维护者为 yomo1024,分类为「趣味换装」。它为 dsh-claude-style 主题提供一个原生设置分区,用于调整背景图、透明度、多处字号与导航折叠状态。所有配置走 DSH 自身的 settings.section 插槽,界面语言随主题走,不修改上游 CSS 文件。

核心功能

插件提供以下设置项:

  • 背景图:任意图片,存入 localStorage,转成 webp 后内联为 CSS 变量
  • 内容透明度:0 – 100,让底色透出背后的图
  • 标题字号:9 – 24 px,对话区标题
  • 元信息字号:8 – 20 px,对话区次要文字
  • 时间戳字号:8 – 20 px,消息时间
  • 侧栏字号:8 – 20 px,左侧栏整体
  • 顶部导航字号:11 – 22 px,顶部导航列
  • 顶部导航折叠:开 / 关,独立开关,收起面板列表,文件树与新会话按钮不受影响

设置入口为:设置 → 背景与字号。

顶部导航折叠实现

原生侧栏只能整条收成 36px 宽的图标 rail(._2H3hWW_collapsed),收起后文件树也消失。本插件只切 panelList 这一层——它是原生 DOM 边界,把「导航项」和「新会话 / 文件树」隔开。没有走纯 CSS(无法点击切换),也没有修改 React 树,而是往 panelList 前面插入一个兄弟 <button>。MutationObserver(120ms 节流)会检测侧栏重渲染并补回按钮。折叠状态记在 localStorage 的 dsh-bg-studio:nav-collapsed,刷新后保持。

安装与启用

cd <你的 DSH profile 目录>
pnpm add dsh-bg-studio

然后在 profile 的 package.json 里把它加进 dsh.profile.bundles:

"bundles": [
  "...",
  "dsh-bg-studio"
]

重启 DSH。

本地开发

"dependencies": {
  "dsh-bg-studio": "link:E:/path/to/dsh-bg-studio"
}

使用 link: 指向源码目录后,改完源码立刻生效,不用再手动复制,也不会被 pnpm install 当成野包清掉。

兼容性

  • DSH >= 0.2.1-rc.2
  • 依赖 dsh-claude-style 主题的背景层

侧栏的字号与折叠依靠 [class*="_panelList"] 这类哈希类名匹配。DSH 上游如果重命名这套 CSS module,需要跟着改插件里的选择器。

适用场景与注意

适合希望在 dsh-claude-style 主题中自定义背景、透明度与多处字号的 DSH 用户。插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。

结尾

通过原生设置分区,dsh-bg-studio 为 dsh-claude-style 主题提供了背景图、透明度、侧栏与顶部导航字号、顶部导航折叠等调整能力,不依赖上游 CSS 修改。更多信息可参考插件目录页或 GitHub 仓库。

插件目录页
GitHub

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

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

小夜