← 返回列表
未验证
让 DSH Web 客户端拥有一个能充分利用可用宽度的对话列。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/14 · 已提供中文文档
DSH Web 客户端插件:将对话列固定为其宽度的可配置百分比(默认全宽),而不是内置的 680-920px 阅读宽度。
综合分
29.7
GitHub 分
29.7
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add yunxiyang/dsh-wide-conversation该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-settings用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-wide-conversation 让 DSH Web 客户端拥有一个能充分利用可用宽度的对话列。 内置布局通过 --dsh-chat-content-width: clamp(680px, 列的 64%, 920px) 来确定对话记录的尺寸:在宽窗口下,长对话仍然挤在一条窄栏中,两侧留下大片空白边距。本插件将该轴固定为对话列的可配置百分比——100% 表示对话记录铺满整列——并将该百分比以可折叠卡片的形式暴露在设置 > 插件下。 简介 / 快速上手(中文) 这个插件让 DSH 桌面/网页客户端的对话列按可用宽度铺开。 - 内置布局把正文宽度锁在 clamp(680px, 列的 64%, 920px) —— 宽窗口下长对话仍挤在一条窄栏里,两侧留大片空白。本插件把这条宽度轴改成对话列宽度的百分比,100% 即铺满整列。 - 百分比存在 Host 设置文档里(wide-conversation 命名空间),因此 设置 > 插件 里会出现一张 Wide Conversation 卡片:默认收起,点标题行展开后可在 40–100 之间调整,改完立即生效。收起时标题行右侧直接显示当前百分比。 - 安装:dsh plugin --profile add dsh-wide-conversation,然后重启该 profile。 - 插件只影响客户端布局,不碰模型、网络或会话日志,也不写入任何自定义会话事件。 安装 使用 dsh CLI 安装到某个 profile 中。它的 plugin 子命令会在 profile 目录内转发给 pnpm,因此 add/remove 的行为与平常一致: dsh plugin --profile add dsh-wide-conversation 然后重启该 profile(桌面端:设置 → 桌面设置 → 重启,或退出后重新打开)。该 profile 的 package.json 会新增依赖项和 dsh.profile.bundles 条目,随附的 cordis.patch.yml 会把插件插入层栈——无需手动编辑补丁。 卸载: dsh plugin --profile remove dsh-wide-conversation 想从本地检出目录使用?把 profile 指向该目录即可: dsh plugin --profile add link:/path/to/dsh-wide-conversation 配置 设置卡片 Wide Conversation(设置 > 插件)——默认收起,点击其标题行展开,收起时标题行也会显示当前百分比。或者直接在 Host 设置文档中编辑同一命名空间。两个入口写入的是同一命名空间;下面的 Host schema 是校验该值的权威依据。 | 字段 | 默认值 | 范围 | 含义 | | --- | --- | --- | --- | | widthPercent | 100 | 40–100 | 对话内容宽度占对话列的百分比。100 表示铺满整列。 | 超出范围的值会被卡片和 schema 双双拒绝,因此手动编辑的设置文档也无法把该列驱动到范围之外。 工作原理 对话骨架的整个水平轴都来自 --dsh-chat-content-width,它声明在骨架自身的根节点上,并会被拖拽产生的 --dsh-chat-user-width 覆盖。两者都以内联样式落在骨架根节点上,因此普通样式表规则会输给 style 属性——该覆盖规则带有 !important。 1. lib/client.js 注入一份样式表,将这两个自定义属性都固定为 calc(var(--dsh-wide-percent, 100) * 1%),并回收读取所需的留白 1. 为旧的居中 920px 度量预留的列,并隐藏拖拽手柄 现在百分比已取代它。 2. 实时百分比会一次性发布到 document.documentElement 上,作为 --dsh-wide-percent,因此变更会在下一次样式重新计算时重绘, 而不是重新创建样式表或重新渲染 React。 3. lib/index.js 在 Host 上注册 wide-conversation 设置命名空间。 正是该命名空间让卡片得以出现:可配置标签页按设置命名空间分发其卡片, 因此 Host 提供的命名空间和声明它的卡片是同一个条目的两半。这也是 该偏好项存放在设置文档中而非 localStorage 中的原因。 4. 卡片本身是一个折叠展开项,与内置插件卡片一致:一个使用其 token 和圆角的 折叠行,展开后显示单个宽度字段。贡献的卡片不会从设置区块继承任何样式, 因此它重新声明了它们所使用的样式。 输入框卡片按 content + 32px 推导,因此它会自动跟随该轴。 无构建步骤 浏览器端是一个手写的 window.__ModuleLoader__.load 闭包 工厂——这是客户端模块系统唯一接受的形式——因此该包不附带 任何打包器、构建脚本,也没有自己的客户端依赖。react 通过注入的 require 表传入;@deepseek-ai/schemastery 通过配置文件自身的 node_modules 解析,与随附的 客户端插件获取它的方式相同。 兼容性 - 客户端平台:web(dsh.client.platform,即桌面端和浏览器 GUI)。没有终端界面行为。 - 不写入任何会话事件,因此它不会影响会话日志加载。 - 该样式表不会重新划定对话区域之外的任何内容,但它确实 通过属性([data-phase] + [data-conversation-scroll]) 而非哈希化的 CSS 模块类名来定位骨架,因此当类名变化时它仍能继续工作。 如果未来的构建重命名了这些属性,该插件会降级为无操作, 而不会破坏布局。 许可证 MIT
同作者(yunxiyang)的其他插件
扫码进群