fly-fish76/dsh-width-control ↗★ 1
@local/width-control
Local persistent plugin: adjustable chat text-column / composer width for the DSH web UI.
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗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 层面按真实路径解析,符号链接同样可用。
🎮 使用
- 点击工具行的 chip,面板出现在 chip 正上方