summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorphantomreactor <[email protected]>2025-11-13 02:40:23 +0530
committerGitHub <[email protected]>2025-11-12 15:10:23 -0600
commit90f05eb9c23ddd37a4337e22429741f87dc725cd (patch)
treea67d9ce948141e6ef82c76244e8624805ea97801 /packages
parentb63b6d04c6add179f4a8d764ed6e811298aafa11 (diff)
downloadopencode-90f05eb9c23ddd37a4337e22429741f87dc725cd.tar.gz
opencode-90f05eb9c23ddd37a4337e22429741f87dc725cd.zip
paste images in wsl using ctrl+v (#4123)
Co-authored-by: GitHub Action <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/util/clipboard.ts26
1 files changed, 13 insertions, 13 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/util/clipboard.ts b/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
index aac172141..c62630e0c 100644
--- a/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
+++ b/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
@@ -1,5 +1,5 @@
import { $ } from "bun"
-import { platform } from "os"
+import { platform, release } from "os"
import clipboardy from "clipboardy"
import { lazy } from "../../../../util/lazy.js"
import { tmpdir } from "os"
@@ -29,6 +29,18 @@ export namespace Clipboard {
}
}
+ if (os === "win32" || release().includes("WSL")) {
+ const script =
+ "Add-Type -AssemblyName System.Windows.Forms; $img = [System.Windows.Forms.Clipboard]::GetImage(); if ($img) { $ms = New-Object System.IO.MemoryStream; $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png); [System.Convert]::ToBase64String($ms.ToArray()) }"
+ const base64 = await $`powershell.exe -command "${script}"`.nothrow().text()
+ if (base64) {
+ const imageBuffer = Buffer.from(base64.trim(), "base64")
+ if (imageBuffer.length > 0) {
+ return { data: imageBuffer.toString("base64"), mime: "image/png" }
+ }
+ }
+ }
+
if (os === "linux") {
const wayland = await $`wl-paste -t image/png`.nothrow().arrayBuffer()
if (wayland && wayland.byteLength > 0) {
@@ -40,18 +52,6 @@ export namespace Clipboard {
}
}
- if (os === "win32") {
- const script =
- "Add-Type -AssemblyName System.Windows.Forms; $img = [System.Windows.Forms.Clipboard]::GetImage(); if ($img) { $ms = New-Object System.IO.MemoryStream; $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png); [System.Convert]::ToBase64String($ms.ToArray()) }"
- const base64 = await $`powershell -command "${script}"`.nothrow().text()
- if (base64) {
- const imageBuffer = Buffer.from(base64.trim(), "base64")
- if (imageBuffer.length > 0) {
- return { data: imageBuffer.toString("base64"), mime: "image/png" }
- }
- }
- }
-
const text = await clipboardy.read().catch(() => {})
if (text) {
return { data: text, mime: "text/plain" }