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。

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

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

小夜