dsh-composer-keys:为 DSH Web 聊天输入框自定义发送、换行与打断键位

前言

在 DeepSeek Harness(DSH)Web 里写提示词时,Enter 是发送还是换行,往往和你在其他 IM 或编辑器里的肌肉记忆不一致。DSH 原生也提供「繁忙时 Enter 键行为」等设置,但「哪个键触发发送、哪个键换行」仍可能不符合个人习惯。若你希望在不大改 DSH 的前提下,把发送、换行,以及任务运行时的打断动作绑到顺手的组合键上,并在插件页或浮动面板里统一管理方案,下面介绍社区插件 dsh-composer-keys(维护者 zlqd123)。

这是什么

dsh-composer-keys 是面向 DeepSeek Harness Web 前端的客户端插件(当前公共版本 v0.1.4,面向 DSH 0.2.x;README 注明已在 DSH 0.2.1-rc.2 上实机验证有效)。它把 Enter、Ctrl/Cmd+Enter、Shift+Enter 或任意自定义组合键分配给「发送」「换行」「打断」三个动作;配置写入 DSH 用户设置文档的 composer-keys 命名空间,与主题、语言等偏好同通道持久化。默认行为与出厂一致——装上后若不修改键位,插件不介入页面。

维护者说明:DSH 已有 Settings → 快捷键编辑界面;若官方后续提供可自定义发送/换行/打断的同类能力,本项目计划停止维护并归档。

核心功能

三通道键位与互斥

  • 发送、换行、打断各绑定一组组合键(逗号分隔,如 enter, ctrl+enter;修饰符顺序不限)。
  • 同一组合键不能同时属于多个动作;跨动作重复写入时自动迁移,优先级为:发送 > 换行 > 打断。
  • 打断默认无绑定;留空表示不启用。命中后等同于输入框停止按钮,走原生取消管线(含子代理地址路由);仅在任务运行时于页面任意位置生效,对话框/菜单打开时让路,空闲时不吞键。

键位方案

插件页顶置「键位方案」复选框条:

  • 内置 DSH 原生、微信风格两套方案;
  • 用户自定义方案最多 3 个(同名覆盖)。
  • 勾选一个方案会整组切换三个键位字段;与某方案完全一致时自动勾中,与所有方案都不一致时全部未选。
  • 「新建方案名」留空则只保存键位、不新建方案;填写名字后点「保存」可同时生效键位并写入方案列表。

两处配置面(DSH 0.2.x)

  1. 插件页(推荐):侧边栏「插件」→ dsh-composer-keys。内嵌 DSH 官方 SettingsForm:三个文字配置项 + 「新建方案名」+ 方案条。只有点「保存」才写入;离开页面丢弃未保存编辑。无效组合键标红并阻止保存。
  2. 浮动面板(0.1.x 界面遗留):Settings → General 的「输入框按键」一行,或聊天输入框工具行右侧小键盘按钮。改键立即生效(无保存按钮),支持 chip 增删与「+ 录制按键」。底部可深链到插件页;README 标注后续版本将向插件页迁移。

两处均支持「+ 录制按键」:点按后直接按键录入(Esc 取消;录制打断通道时按 Esc 即录入 Esc)。中文/日文等 IME 组合输入期间不会被拦截。

与原生「繁忙时 Enter 键行为」的关系

插件管「哪个键触发发送」;DSH 原生设置管「智能体忙碌时,发送是排队还是转向」。命中「发送」的手势会重放为合成普通 Enter,由原生提交管线处理;键位偏离出厂默认后,所有发送键(含 Ctrl/Cmd+Enter)统一遵循原生 busy-Enter 设置,不再保留 Ctrl/Cmd+Enter 的反向特性。键位保持出厂默认时,插件完全不介入。

版本兼容与持久化

DSH 版本 状态 设置持久化通道
0.1.7-rc.2 / 0.1.7-rc.1 适配 configForms + 条目 volatile Config 派生命名空间
≤ 0.1.6 兼容 settingsScope.bind / settings.register

保存后无需刷新页面;保存被拒时原生提示「本部署没有接受这些值」且草稿保留。插件页控件随 DSH 深浅色主题自适应。

安装与启用

README 给出的安装方式是从本地 checkout 以符号链接安装(改源码后重启即生效):

dsh plugin --profile web add ./dsh-composer-keys

重启 dsh web 后生效;若浏览器表现异常,请硬刷新(Ctrl+Shift+R)。卸载:

dsh plugin --profile web remove dsh-composer-keys

插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。宿主半件依赖 @deepseek-ai/schemastery(package.json 为 ~3.18.4),Node 要求 >=22.19.0。

典型用法

  1. 打开侧边栏「插件」,进入 dsh-composer-keys(Settings → 内置插件可查看运行状态)。
  2. 在「发送 / 换行 / 打断」字段中手输逗号分隔组合键,或使用字段旁的「+ 录制按键」录入。
  3. 需要一键切换习惯时,在「键位方案」勾选 DSH 原生、微信风格或已保存的自定义方案,确认下方字段联动后点「保存」。
  4. 想保存当前三元组为自定义方案:改好三个字段,在「新建方案名」填写名称(最多 3 个自定义方案),再点「保存」。
  5. 若偏好即时试键,点标题行「经典界面」或从 General/输入框旁打开浮动面板;满意后再到插件页保存以写入用户文档。

地面真相可在服务端查看:~/.dsh/profiles/web/cordis.patch.yml 中 - id: composer-keys 条目;注册状态见同目录 package.json。

适用场景与注意

适合:长期在 DSH Web 主聊天输入框写作、希望发送/换行/打断与微信或其他工具对齐,并希望在多设备间通过用户设置文档同步键位的开发者。

注意:

  • 社区插件目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;DSH 理念是「一切皆插件」,选用社区包需自行评估维护状态(README 已声明维护边界)。
  • DSH 大版本若改变输入框 DOM(当前锚点为 [data-input-scroll]),拦截可能静默失效,不会破坏原生功能。
  • 加载新插件代码需重启 dsh web;浏览器侧模块有缓存时需硬刷新。插件页表单依赖可选 UI 包,加载失败时键盘引擎仍可用,但配置页可能缺席(控制台会有 [composer-keys] optional require failed)。

链接

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

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

Xiaoye