FrankZhangIronly/dsh-composer-enter ↗★ 0
dsh-composer-enter
DSH web plugin: remap how Enter behaves in the chat composer (send / newline / interject), persisted to settings.yaml.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:FrankZhangIronly/dsh-composer-enter说明文档
阅读完整 README ↗dsh-composer-enter
DeepSeek Harness (DSH) Web 插件:让你自定义回车键在对话框里的行为——可分别指定哪个组合键「发送消息」、哪个「插入换行」、哪个「插话(另一行为)/ 立即发送排队消息」。
插件为双面 DSH 插件:宿主(Node)侧负责设置命名空间与 loopback RPC 通道,浏览器侧在「设置 → 通用」渲染键位录制行,并在 document 捕获阶段拦截回车事件。
功能特性
- 设置 → 通用 中新增一行「回车键映射」:三个键位录制框,分别对应 发送消息、插入换行、插话(另一行为)。
- 配置持久化到
/settings.yaml的ui-composer-enter命名空间。直接编辑文件,UI 会在保存时自动刷新。 - document 捕获阶段拦截回车,在 React 根容器监听之前执行;对输入法组合期(
isComposing/ keyCode 229)和只读态一律放行。 - 不变式自动维护:发送与换行必须恰好一个为单独
Enter;插话键必须是与前两者不同的组合键。冲突的选择会被自动纠正。 - 零修改 DSH 主干,作为普通插件安装,
@deepseek-ai/dsh升级不影响。
安装
dsh plugin --profile web add dsh-composer-enter
安装后重启 dsh web,在 设置 → 通用 中即可看到新增的「回车键映射」一行。
从本地 checkout 安装:
dsh plugin --profile web add /path/to/dsh-composer-enter
配置项
命名空间 ui-composer-enter 暴露三个字段,均须匹配 ^(?:enter|(shift|ctrl|alt|meta)(\+(shift|ctrl|alt|meta))*+enter)$:
| 字段 | 默认值 | 含义 |
|---|---|---|
sendCombo | enter | 发送消息 的组合键。 |
newlineCombo | shift+enter | 插入换行 的组合键。 |
steerCombo | ctrl+enter | 插话(另一行为) 的组合键:空闲时等同发送,智能体运行时插话或立即发送排队消息。必须与前两者不同,且不能是单独的 Enter。 |
可以在「设置」UI 改,也可以直接改 settings.yaml:
ui-composer-enter:
sendCombo: enter
newlineCombo: shift+enter
steerCombo: ctrl+enter
插件监听 settings/document-updated 事件,文件被外部修改后会自动重读。
拦截原理
当映射等于应用默认值(enter / shift+enter / ctrl+enter)时,完全不拦截,DSH 原生行为原样保留。