fly-fish76
dsh-width-control
Adjustable chat text-column & composer width for DeepSeek Harness (DSH) web UI — collapsible chip, independent sliders, remembers your settings across restarts
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
DSH Web 宽度调节插件 · dsh-width-control
在 DeepSeek Harness (DSH) Web 界面的输入框工具行添加一个可折叠的「宽度」控件—— 独立调节消息文本列与输入框的显示宽度,并记忆上次参数,重启 DSH 后自动恢复。
✨ 特性
- 🎛️ 一个紧凑的折叠式 chip(
⇔ 宽度 748px ▾)挂在输入框工具行左端,点击弹出面板(与权限选择器同款形态,锚定在 chip 正上方) - 📐 文本列宽度与输入框宽度两个滑杆完全独立(400–1160px,步长 20)
- 🔗 「输入框跟随文本列(+32px)」联动开关,一键恢复旧版同步行为
- 📌 面板以视口固定定位打开——拖动宽度时面板纹丝不动
- 💾
localStorage记忆上次的文本/输入框宽度与联动状态,下次打开直接恢复 - 📊 回复中的表格自动水平居中,表头与单元格文字居中显示
- 🔄 持久化注册进 DSH 的
cordis.patch.yml,每次启动自动加载,无需手动启用
🖼️ 截图

在输入框工具行点击 ⇔ 宽度 …px ▾ 展开面板,即可分别调节文本列与输入框宽度。
⚙️ 工作原理
DSH Web 的消息文本列宽度由 CSS 变量 --dsh-chat-content-width(默认 748px)控制,
输入框卡片宽度由 --dsh-composer-card-max-width(默认 calc(文本宽度 + 32px))控制,
两者都定义在对话根容器上。
本插件通过浏览器 bundle(由 DSH 的 client-modules 机制服务)在稳定的产品属性
[data-conversation-scroll] 上覆盖这两个变量,从而独立调控两块宽度——不依赖任何
打包哈希类名,产品升级也不易失效。
📦 安装
前置条件:已安装 DSH(Web 配置),Windows + PowerShell 5.1+(其他平台见下方手动安装)。
# 1. 克隆仓库(任意位置,比如 DSH 目录旁)
git clone https://github.com/fly-fish76/dsh-width-control.git
cd dsh-width-control
# 2. 一键安装(自动创建 node_modules 链接 + 写入 cordis.patch.yml)
.\install.ps1
# 3. 重启 dsh
重启后刷新浏览器页面,输入框工具行左端即可看到 ⇔ 宽度 748px ▾。
手动安装(非 Windows / 不想用脚本)
假设 DSH web profile 目录为 ~/.dsh/profiles/web:
# 1. 把插件源码放到 profile 的 plugins 目录
mkdir -p ~/.dsh/profiles/web/plugins
cp -r <本仓库> ~/.dsh/profiles/web/plugins/width-control
# 2. 让 Node 能在 profile 的 node_modules 里解析到它
ln -s ../plugins/width-control ~/.dsh/profiles/web/node_modules/@local/width-control
# 3. 在 ~/.dsh/profiles/web/cordis.patch.yml 追加(保留原有内容):
- insert:
- id: width-control
name: '@local/width-control'
# 4. 重启 dsh
Linux/macOS 注意:软链接指向的
exports["./client"]与require.resolve均在 Node 层面按真实路径解析,符号链接同样可用。
🎮 使用
- 点击工具行的
⇔ 宽度 …px ▾chip,面板出现在 chip 正上方 - 拖动文本列宽度滑杆 → 只影响消息文本列;拖动输入框宽度滑杆 → 只影响输入框
- 勾选 输入框跟随文本列(+32px) 恢复联动(此时输入框滑杆禁用)
- 每行的 ↺ 恢复该行默认值(748 / 780);调整即时生效并自动记忆
- 再点 chip(或直接关闭面板)折叠
🛠️ 自定义
所有可调常量在 lib/client.js 顶部:
| 常量 | 默认 | 含义 |
|---|---|---|
DEFAULT_TEXT | 748 | 文本列默认宽度 (px) |
DEFAULT_INPUT | 780 | 输入框默认宽度 (px) |
MIN / MAX | 400 / 1160 | 滑杆范围 (px) |
STEP | 20 | 滑杆步长 (px) |
STORAGE_KEY | dsh.width-control.v1 | 记忆存储键 |
改完 lib/client.js 后强刷浏览器页面(Ctrl+Shift+R)即可生效,无需改台账。
🗑️ 卸载
.\uninstall.ps1 # 移除 node_modules 链接 + 从 cordis.patch.yml 删除注册行
或手动:删除 node_modules/@local/width-control 链接与 cordis.patch.yml 中的
- insert: 块。全部移除后重启 dsh。