前言¶
在 DSH Web 环境中,官方输入框在达到 336px 后会停止扩展并开始内部滚动,且不提供折叠控制。当阅读 AI 回复并同时编辑长草稿时,展开的输入框会遮挡大部分聊天内容。本插件修改此行为,同时保留官方的内容自适应机制,仅收紧 max-height 天花板。
插件介绍¶
dsh-composer-collapse 是一个纯客户端补丁插件,用于管理 DSH Web 编写器输入框的高度。它不修改主机文件,仅通过客户端脚本生效。插件所有者为 483218131,采用 MIT 许可证。
核心功能¶
插件提供三种高度模式,通过右上角按钮或键盘快捷键切换,状态保存在本地存储中。
- 自动模式(默认):失焦时折叠至 72px(3 行),聚焦时展开至 192px(8 行),阅读时自动折叠,编辑时自动展开。
- 常驻展开模式:固定高度为 336px(14 行),与官方默认行为一致,不自动折叠。
- 常驻折叠模式:固定高度为 72px(3 行),即使聚焦也不展开。
安装与启用¶
使用以下命令安装插件:
dsh plugin --profile web add github:483218131/dsh-composer-collapse
安装后刷新 Web 页面以应用更改。
使用方法¶
- 切换模式:点击输入框卡片右上角的小箭头按钮,循环切换模式(自动 → 常驻展开 → 常驻折叠 → 自动)。或使用快捷键
Alt+Shift+C。 - 本地调参:对于本地
link:安装,编辑client/client.js顶部的常量(CAP_COLLAPSED、CAP_FOCUSED、CAP_OPEN、TEXT_INSET_RIGHT)以调整高度或布局参数。
注意事项¶
- 浏览器兼容性:焦点判定依赖 CSS
:has()伪类,需要 Chromium 105+ 浏览器(Edge/Chrome 2022 及以上)。 - 副作用注册:所有副作用(样式注入、DOM 节点、监听器)必须注册在
ctx.effect(...)内,否则会被内核回收。 - 布局重叠:已知在顶部通知栏或附件缩略图可见时,切换按钮可能短暂覆盖其右上角,但双方点击均不受影响。
- 钩子机制:插件使用官方
data-*属性(如data-composer-card、data-input-scroll)进行定位,不使用 hash 类。
后续¶
该插件通过控制输入框高度,为长对话场景提供了更紧凑的阅读体验。所有功能均基于本地存储实现,无跨域或服务端依赖。
GitHub 仓库:https://github.com/483218131/dsh-composer-collapse