In desktop environments such as Electron/Tauri, the DeepSeek Harness input box often lacks a native right-click menu. Developers or users are used to shortcut-based operations, but when handling long text, the absence of graphical options for “Select All” or “Paste” lowers efficiency.

Below is an introduction to wuwaka/dsh-clipboard-menu. The plugin injects a right-click menu listener into the renderer process, adding cut, copy, paste, and select-all functionality to DSH input boxes, and providing copy and search options for selected text.

Feature Overview

The plugin mainly addresses interaction issues in two types of scenarios:

  1. Input box operations: Right-click in DSH’s input area to access standard text editing operations.
  2. Selected text operations: After selecting text in read-only areas such as documents, code blocks, or AI responses, right-click to access copy and search functionality.

Core Capabilities

  • Input box menu: Supports cut, copy, paste, and select all.
  • Selected text menu: Supports copy, copy as plain text, and search.
  • Search engine management:
    • Supports selecting and customizing search engines.
    • Supports persistent storage (remembers the user’s choice).
    • Supports default engine detection based on the interface language (Baidu for Chinese, Google for others).
  • Engine configuration: Supports adding custom providers, with customizable names and URL templates.
  • Compatibility: Supports the Lexical rich text editor and right-click operations inside custom engine forms.

Installation and Activation

Installing this plugin requires administrator privileges or write permissions to the target profile.

Run the following command to install it:

dsh plugin --profile <profile> add github:wuwaka/dsh-clipboard-menu

After installation, you need to restart the host application (DSH Desktop or the desktop environment hosting it) for the listener to take effect.

Typical Usage

1. Using a Search Engine

Right-click in the input box and click “Search Engine” to search for the selected text in the default browser. If you right-click “Search Engine…”, hover over the expanded list and select one to switch the default engine. This choice is saved persistently.

2. Configuring a Custom Engine

Click “Custom” in the search engine list to expand the configuration form. Within the two input fields (name and URL), you can still use the right-click menu to perform cut, copy, paste, and select-all operations. The right-click menu appears as an independent overlay and does not close the form.

After saving in the form, the new provider appears in the list with the name you set and supports independent deletion.

3. Forcing Enablement in Browsers

By default, the plugin does not listen to ordinary browser right-click events to avoid overriding the browser’s powerful native functionality. If you need to test or use it in a browser, you can set a global variable via JavaScript before the plugin loads:

window.__DSH_CLIPBOARD_MENU_FORCE__ = true

Applicable Scenarios and Notes

Scope of Effectiveness

This plugin only takes effect in shells that do not have built-in right-click menus, primarily targeting DSH Desktop’s Electron or Tauri environments. Normal browser tabs already have native menus, so by default the plugin does not install a listener, and right-click behavior remains unchanged.

Clipboard Permissions

If navigator.clipboard.readText() is denied by the browser (usually due to lack of HTTPS or revoked permissions), the menu will display “Clipboard unavailable” and recommend using Ctrl+V.

Known Limitations

  • Does not support “Paste and Match Style.”
  • The menu does not close when scrolling (but it does close when clicking outside).

Conclusion

wuwaka/dsh-clipboard-menu intercepts right-click events at the renderer process level, filling a gap in GUI interaction for the DeepSeek Harness desktop input box. For users accustomed to processing text with the right-click menu, especially in scenarios requiring frequent select-all, paste, or search engine switching, this plugin provides necessary assistance.

For more details and source code, refer to the plugin catalog page or the GitHub repository.