dsh-keys-setting:在 DSH 设置里自定义 Enter 发送或换行

前言

在 DeepSeek Harness(DSH)里写 prompt、改配置或和智能体对话时,输入框的快捷键往往沿用宿主或引擎的默认映射:有的环境 Enter 直接发送,Shift+Enter 换行;也有人习惯 Ctrl+Enter(macOS 上为 ⌘+Enter)发送。习惯不一致时,要么误触发送,要么多按一次组合键,打断思路。引擎本身不一定暴露这三组手势的独立开关,社区插件 dsh-keys-setting 的作用,就是在 DSH 设置窗口 →「通用」 里为 Enter、Shift+Enter、Ctrl/Cmd+Enter 分别选择「发送消息」或「换行」,且默认与引擎原生行为一致,不改设置时不额外干预。

下面介绍该插件的定位、实现要点、安装方式与配置字段。事实以 GitHub 仓库 README 与 package.json(当前版本 0.2.6)为准;社区目录页见 SkillHub(独立站点,与 DeepSeek / 幻方无官方从属关系)。

这是什么

dsh-keys-setting 由维护者 itchenshi 发布,分类为客户端插件:面向 DSH 的 Web 页面半边,在「设置 → 通用」增加一行「按键设置」,用三个下拉框分别绑定 Enter、Shift+Enter、Ctrl+Enter(macOS 为 ⌘+Enter)的语义。它只重映射手势,不修改输入内容;发送与换行仍由引擎决定。

核心功能

设置界面

  • 在「设置 → 通用」增加「按键设置」,三个手势各有一个选择器:发送消息 / 换行。
  • 在设置窗口里修改后立即生效。

页面侧行为

  • 在捕获阶段监听输入框的 keydown:仅当你的选择与引擎原生行为不同时才拦截,并重新派发引擎对应的另一种手势。
  • 输入法(isComposing / keyCode 229)与 Alt+Enter 一律放行,避免干扰中文输入等特殊场景。
  • 默认值等于引擎原生行为;未改设置时干预次数为 0。

宿主侧与存储

  • 偏好落在 profile 的 cordis.patch.yml 里 id: composer-keys 这一行的 config(由插件 Config schema 声明);插件不直接读写任意文件。
  • 宿主提供 GET/POST /composer-keys,走引擎信任围栏(Host 白名单 + 浏览器会话 cookie);无 cookie 的裸请求会得到 401。插件无对外网络请求。
  • config.enabled === false 时宿主不注册路由、也不显示设置行。

安装与启用

DSH 生态理念是「一切皆插件」;安装前建议自行查看仓库源码与 MIT 许可证,并理解插件以当前 dsh 进程权限运行。

DSH Ready GUI(推荐)

插件随 GUI 内置。打开 GUI → 设置窗口 →「第三方插件」勾选按键设置,装完按提示刷新页面(该插件带页面半边)。

其它 DSH 宿主(dsh web / CLI)

任选一条命令;装到的都是本仓库完整内容(含 cordis.patch.yml),装完无需额外配置。本包不在 npm(registry.npmjs.org 查无此包)。

# 推荐:直接从 GitHub 装
dsh plugin --profile web add github:itchenshi/dsh-keys-setting

# 备选:从本仓库 Release 的 tarball 装
dsh plugin --profile web add https://github.com/itchenshi/dsh-keys-setting/releases/download/v0.2.6/dsh-keys-setting-0.2.6.tgz

典型用法

  1. 打开 DSH 设置窗口 →「通用」,找到「按键设置」。
  2. 按需为 Enter、Shift+Enter、Ctrl/Cmd+Enter 分别选择「发送消息」或「换行」。
  3. 回到对话输入框验证:只有与默认不同的映射才会被插件改写。

若习惯手改 profile,可编辑 cordis.patch.yml 中 id: composer-keys 的 config。宿主半边在页面窗口重新获得焦点时重读配置,切回 Harness 窗口即生效,一般不必刷新整页。

配置说明

cordis.patch.yml 里 id: composer-keys 一行的 config 不能省略;缺少则没有设置条目,宿主无法读写偏好。

键 默认 说明
enter send send = 发送消息,newline = 换行
shiftEnter newline Shift+Enter 同上
ctrlEnter send Ctrl+Enter(macOS ⌘)同上

兼容性与常见问题

  • 需要 DSH >= 0.2.0-rc.2(0.2.0 更换了设置服务 API,0.1.x 无法保存偏好)。
  • Node >= 20;运行时无额外 npm 依赖,schema 使用引擎自带的 @deepseek-ai/schemastery。

改完没生效? 设置窗口内改应立即生效;手改文件后需切回 Harness 窗口触发重读。宿主启动日志应出现 [composer-keys] route ready at /composer-keys (entry composer-keys),没有则说明插件未加载。

引擎过旧? 更旧引擎使用已移除的旧设置服务(register / get / section),插件无法保存偏好。

适用场景与注意

  • 适合:长期在 DSH Web 界面输入、希望三组 Enter 相关手势与默认不一致、又不想改引擎核心的开发者或日常用户。
  • 注意:仅重映射按键语义,不改变消息内容与发送逻辑;与 IME、Alt+Enter 相关的边界已由插件放行。
  • 安装与启用前请阅读 GitHub 源码 与许可证;社区目录 itchenshi/dsh-keys-setting 便于检索,安装命令仍以 README 为准。

结尾

经过上面的步骤,你可以在 DSH 通用设置里统一 Enter 家族快捷键,且默认零干预。仓库:https://github.com/itchenshi/dsh-keys-setting;目录页:https://www.skillhub.cn/plugins/itchenshi/dsh-keys-setting。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye