前言¶
在 DSH(DeepSeek Harness)Web 界面中,输入框的默认行为通常是 Enter 发送消息。对于习惯在聊天窗口中多行写作或编辑长文本的用户来说,这会打断思路。传统做法是使用 Shift+Enter 换行,但需要记住这个组合键,容易混淆。
下面介绍一个极简插件,将 Enter 键改为换行,Shift+Enter 改为发送,还原聊天软件的默认交互。
这是什么¶
dsh-enter-swap 是 DSH 的一个 Web 客户端插件,由维护者 xuqiuba888 开发。插件版本 0.1.4,许可证为 MIT。它的核心作用是在 Web 界面中交换 Enter 和 Shift+Enter 的行为:Enter 插入换行,Shift+Enter 发送消息。
插件采用零依赖设计,无需设置页,安装后立即生效。
核心功能¶
插件实现以下按键行为互换:
- Enter:插入换行
- Shift+Enter:发送消息
- Ctrl/Cmd+Enter:保持原生加速投递(由引擎决定)
- Alt+Enter:保持原生
- 中文输入法组词过程不拦截
- 斜杠命令
/或@提及候选菜单打开时,Enter 正常选中菜单项
在输入框工具栏(模型选择器左侧)会显示胶囊提示:〔Shift+Enter 发送消息〕〔Enter 换行〕。
安装与启用¶
使用 DSH CLI 安装:
dsh plugin --profile web add github:xuqiuba888/dsh-enter-swap
其他 profile 同理,只需在命令中添加 --profile <名>。
安装完成后需要重启 DSH(Desktop/NEXT 应用)或刷新浏览器/界面(Ctrl+Shift+R)使插件生效。
卸载与更新¶
更新到最新版本:
dsh plugin --profile web update dsh-enter-swap
卸载插件:
dsh plugin --profile web remove dsh-enter-swap
卸载后刷新即可恢复原生行为。
实现要点¶
插件在 document 捕获阶段监听 keydown 事件,仅当目标位于输入框([data-composer-input="true"])内时处理按键互换。手势判定规则包括:
- Alt/Ctrl/Cmd 一律放行
isComposing/ keyCode 229(中文输入法组帧)放行- 检测到挂载在
<body>直下且可见的 portal 菜单(role="menu"或role="listbox")时放行,Enter 正常选中菜单项
命中时执行 preventDefault 和 stopPropagation,再把互换后的手势以合成 KeyboardEvent 派发回引擎,由引擎决定发送或换行的语义。
Client bundle 为纯 JS,使用 __ModuleLoader__ 工厂格式,无需构建步骤。
兼容性¶
插件在 DSH 0.2.x 上开发并验证,具体为 0.2.1-rc.2 web 界面。不使用任何引擎版本特定的内部 API。
适用场景¶
适合习惯在聊天输入框中多行写作、编辑长文本或需要频繁换行的用户。对于需要快速切换发送和换行操作的场景,该插件可以减少记忆组合键的负担。
注意事项¶
- 插件以当前 DSH 进程权限运行
- 安装前建议检查源码与许可证(MIT)
- 卸载后刷新即可恢复原生行为
小结¶
dsh-enter-swap 通过极简的按键互换,解决了 DSH Web 界面中 Enter 与 Shift+Enter 行为与常见聊天软件不一致的问题。零依赖、无设置页、安装即用,适合追求原生交互体验的用户。
- 插件目录页:https://www.skillhub.cn/plugins/xuqiuba888/dsh-enter-swap
- GitHub 仓库:https://github.com/xuqiuba888/dsh-enter-swap