DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-ctrl-enter-send

G

dsh-ctrl-enter-send

Manifest valid

DSH plugin: Enter inserts a newline in the composer, Ctrl+Enter (Cmd+Enter on macOS) sends.

UI (client)hasBundlePatch

dsh-ctrl-enter-send

Change the DSH composer's send key from Enter to Ctrl+Enter: Enter inserts a newline, Ctrl+Enter (Cmd+Enter on macOS) sends.

This fixes a concrete annoyance: when a Chinese IME is left in English mode, hitting Enter to start a new line sends a half-written prompt to the AI instead.

Install

This package is a DSH bundle distributed from GitHub. Install it with the DSH CLI (the official git-install path) and pin the release tag:

dsh plugin --profile <your-profile> add github:Geopanret/dsh-ctrl-enter-send#v0.1.0
  • The plugin is a bundle: after installation it is appended to the profile's dsh.profile.bundles and activates the next time the page loads (a page refresh is enough; no DSH restart needed).
  • Pinning the tag (or a commit: github:Geopanret/dsh-ctrl-enter-send#<sha>) is recommended, so later pushes cannot silently change what you run. Omit the #<ref> to track the default branch.
  • No build step and no install-script approval are needed: this package is plain JavaScript and ships its built artifacts directly (client.js is the whole browser bundle). pnpm does not need an allowBuilds entry.
  • Uninstall with dsh plugin --profile <your-profile> remove dsh-ctrl-enter-send (or from the Plugins page).

Compatibility: DSH >=0.2.0 <0.3.0 (declared in engines.dsh; tested on 0.2.1-rc.5).

Behavior

Action (focus in the main chat composer)BeforeAfter
Entersend (or queue/steer while running)newline (same as Shift+Enter)
Shift+Enternewlinenewline (unchanged)
Ctrl+Enter / Cmd+Entercomplementary delivery modesend, exactly like the Send button (while running it follows Settings → General → busy-Enter: queue or steer)
Empty draft + Ctrl+Enter while running with queued messagessteer all queued messagesunchanged
Enter while the / or @ menu is openselect the highlighted itemunchanged
Enter while an IME is composingconfirm the compositionunchanged
Alt+Enter / Ctrl+Shift+Enter / AltGraph+Enterignored by the built-in keymapunchanged
Other inputs (rename, inline message edit, settings, dialogs, question cards)unchangedunchanged

Clicking the Send button is unchanged; it and Ctrl+Enter use the same "plain Enter" gesture.

How it works

The plugin is browser-only. At page boot it installs one capture-phase keydown listener on window and rewrites the modifier flags of the event object, so the composer's existing keymap takes its own newline branch (Shift+Enter) or its own send branch (plain Enter):

  • plain Enter → shiftKey = true (built-in newline);
  • Ctrl/Cmd+Enter on a non-empty draft → ctrlKey/metaKey = false (built-in send);
  • empty draft keeps the built-in Cmd/Ctrl+Enter steer-all gesture;
  • menus, IME composition, Alt/AltGraph and every other input are left alone.

DOM contract used (DSH 0.2.1-rc.x): [data-composer-input], [data-composer-card], [data-trigger-menu], [data-composer-overlay], [data-composer-placeholder]. If any marker is missing, the plugin falls back to the built-in behavior instead of guessing — the worst case is "no change", never a mis-send.

If overriding the event flags is impossible in some environment, the plugin falls back to stopping the original event and replaying a synthetic Enter with the intended flags.

Known limitations

  • The shortcuts cheat sheet/settings page still shows the built-in fixed rows "Enter = send" and "Cmd/Ctrl+Enter = complementary delivery". Those are read-only fixed entries owned by the built-in package and cannot be rewritten by a third-party plugin; the actual behavior is the one above.
  • The old Ctrl+Enter "complementary delivery mode" semantics are replaced by the primary send gesture (that is the point of this plugin). The empty-draft "steer all queued messages" gesture is deliberately preserved.
  • DSH upgrades may rename the data-composer-* markers; the plugin then silently reverts to the built-in keys. Update the selectors in client.js after such an upgrade.

Development

dsh plugin --profile <dev-profile> add /path/to/dsh-ctrl-enter-send

client.js is the whole client bundle (no build step); changes are picked up by DSH's client HMR watcher without restarting DSH. Host-side index.js changes need a restart.

License

MIT. See LICENSE.

This is a community plugin, not an official DeepSeek package.

Comments

Loading…

Similar plugins

dsh-ctrl-enter-submit

by SA1992X

Makes plain Enter insert a newline in the composer and Ctrl/Cmd+Enter submit, toggleable in settings.

UI & ExperienceManifest valid

★ 4

↓ 214/wk

MIT

JavaScript

Sep 14, 2026

dsh plugin --profile web add dsh-ctrl-enter-submit

by Nalleyer

dsh plugin: switch the chat composer between Enter-send and Ctrl+Enter-send from Settings → General.

Manifest valid

★ 0

MIT

TypeScript

Oct 8, 2026

dsh plugin --profile web add dsh-enter-send

by CH3SH-LC

DSH client plugin: Ctrl+Enter (left Control) inserts a newline in the DeepSeek Harness web composer, mirroring Shift+Enter

Manifest valid

★ 0

MIT

TypeScript

Aug 16, 2026

dsh plugin --profile web add dsh-enter

by itchenshi

DeepSeek Harness plugin: choose whether Enter / Shift+Enter / Ctrl/Cmd+Enter sends the message or inserts a line break

UI & ExperienceDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 25, 2026

dsh plugin --profile web add dsh-keys-setting

Makes Enter insert a newline in the DSH 0.1.5 Web composer while Cmd/Ctrl+Enter keeps submitting messages.

Sessions & MessagesManifest valid

★ 0

dsh plugin --profile web add dsh-composer-enter

by AL-Yichen

A fullscreen input plugin for DeepSeek Harness.

UI & ExperienceTerminal & ClientsManifest valid

★ 4

↓ 267/wk

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-fullscreen-input