From b2294ebc725b58f55525fbe53a73b2e1f54c8474 Mon Sep 17 00:00:00 2001 From: dhruvkej9 <96516827+dhruvkej9@users.noreply.github.com> Date: Sat, 28 Mar 2026 13:42:30 +0530 Subject: [PATCH] docs(keybinds): document Ctrl+V behavior in Windows Terminal + WSL --- packages/web/src/content/docs/keybinds.mdx | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/web/src/content/docs/keybinds.mdx b/packages/web/src/content/docs/keybinds.mdx index 74ef30577e..30248ba244 100644 --- a/packages/web/src/content/docs/keybinds.mdx +++ b/packages/web/src/content/docs/keybinds.mdx @@ -193,3 +193,47 @@ Add this to the root-level `keybindings` array: ``` Save the file and restart Windows Terminal or open a new tab. + +--- + +## Ctrl+V In Windows Terminal (WSL) + +If OpenCode is running inside WSL, Windows Terminal may intercept `ctrl+v` before the app can process clipboard events. This can cause inconsistent behavior where plain text paste works but image paste does not. + +You can keep using `ctrl+v` by binding it to a custom action that: + +1. performs normal paste, then +2. sends an empty bracketed-paste marker (`\u001b[200~\u001b[201~`). + +Add this to the root-level `actions` array: + +```json +"actions": [ + { + "command": { + "action": "multipleActions", + "actions": [ + "paste", + { + "action": "sendInput", + "input": "\u001b[200~\u001b[201~" + } + ] + }, + "id": "User.pasteAndNotify" + } +] +``` + +Then bind `ctrl+v` to that action in the root-level `keybindings` array: + +```json +"keybindings": [ + { + "keys": "ctrl+v", + "id": "User.pasteAndNotify" + } +] +``` + +Save the file and restart Windows Terminal.