dsh-sidebar-width:控制左侧会话列表栏宽度的插件

DeepSeek Harness (DSH) Web UI 的左侧会话列表栏默认有一个硬编码的拖动下限,官方设定为 264px。当屏幕空间有限或需要更紧凑的界面布局时,这个限制会带来困扰。dsh-sidebar-width 插件通过在 dsh web 启动时修补客户端 bundle 文件,直接调整这一数值。它不提供任何新的 UI 面板,仅专注于调整侧边栏的尺寸逻辑。

插件定位

这是一个由 garrisonz 维护的打补丁式插件,遵循 MIT 许可证。插件的核心价值在于绕过官方客户端 bundle 的硬编码限制,让开发者能够根据实际屏幕尺寸和偏好,自由控制左侧栏的拖动范围和默认展开宽度。

核心功能

该插件仅作用于左侧会话列表栏的宽度控制:

  1. 调低拖动下限:突破官方 264px 的限制,允许侧边栏更窄。
  2. 自定义拖动上限:防止侧边栏过度占屏,设定最大拖动宽度。
  3. 设定展开默认宽度:改变页面初始加载时侧边栏的宽度。
  4. 兼容性:兼容两代 store 结构(d.sidebar 与 d.layoutInfo.sidebar),并内置正则容错逻辑。
  5. 幂等性:插件支持重复运行,升级 DSH 后重启可自动重打补丁。

安装与启用

使用官方推荐方式通过 npm 安装:

dsh plugin --profile web add dsh-sidebar-width   # npm(推荐)

安装完成后,无需手动操作。插件会在 dsh web 启动时自动检测并修补 @deepseek-ai/dsh-client-ui-layout/lib/client.js 文件。首次运行会自动生成备份文件(如 client.js.dsh-sidebar-width.bak)。

配置方法

安装后,编辑 ~/.dsh/profiles/web/cordis.patch.yml 文件,添加以下配置项:

- id: sidebar-width
  name: 'dsh-sidebar-width'
  config:
    min: 160          # 拖动下限,默认 180
    max: 420          # 拖动上限,默认保持 bundle 原值
    defaultWidth: 240 # 展开默认宽度,默认保持 bundle 原值

配置修改后,重启 dsh web 即可生效。

工作原理

由于官方客户端 bundle 中的宽度钳制逻辑(clampWidth(px, 264, 420))和默认值(280px)是写死在 @deepseek-ai/dsh-client-ui-layout/lib/client.js 文件中的,且运行时未暴露可修改的接缝,该插件采用“打补丁”的方式实现功能:

  1. 启动时修补:dsh web 启动时,插件读取配置,对被服务的 client.js 文件进行正则替换。
  2. 安全备份:首次运行会创建 .bak 备份文件。
  3. 结构兼容:插件利用正则对不同的 store 结构(旧版 d.sidebar 与新版 d.layoutInfo.sidebar)进行容错匹配,确保在不同版本下不会出错。
  4. 幂等执行:通过标记机制,多次运行不会重复修改文件;若未来 bundle 结构发生重大变更,插件会安全拒绝修补。

卸载与回滚

使用以下命令移除插件:

dsh plugin --profile web remove dsh-sidebar-width

插件移除后,补丁文件不会自动回滚。如需还原,可手动将备份文件(client.js.dsh-sidebar-width.bak)改回原文件名。

总结

该插件适合需要精细控制 DSH Web UI 布局的开发者。它通过极简的配置文件实现了对侧边栏尺寸的完全控制,且机制透明(基于文件修补)。详细信息可参考:SkillHub 目录 或 GitHub 仓库。

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

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

小夜