summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorfrankdierolf <[email protected]>2025-11-03 15:21:13 +0100
committerGitHub <[email protected]>2025-11-03 09:21:13 -0500
commit2c3aa330b92bcc981d271c34388ac4ed2242b670 (patch)
treec00903996262dfbfaf003e1a8fa83ed5ecde345c
parent47b2fb79dc3cb65ae6b8a4ba1eff0565a90da882 (diff)
downloadopencode-2c3aa330b92bcc981d271c34388ac4ed2242b670.tar.gz
opencode-2c3aa330b92bcc981d271c34388ac4ed2242b670.zip
fix: correct clipboard image encoding and binary handling (#3817)
-rw-r--r--packages/opencode/src/cli/cmd/tui/util/clipboard.ts14
1 files changed, 7 insertions, 7 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/util/clipboard.ts b/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
index 7603b4c38..aac172141 100644
--- a/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
+++ b/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
@@ -30,13 +30,13 @@ export namespace Clipboard {
}
if (os === "linux") {
- const wayland = await $`wl-paste -t image/png`.nothrow().text()
- if (wayland) {
- return { data: Buffer.from(wayland).toString("base64url"), mime: "image/png" }
+ const wayland = await $`wl-paste -t image/png`.nothrow().arrayBuffer()
+ if (wayland && wayland.byteLength > 0) {
+ return { data: Buffer.from(wayland).toString("base64"), mime: "image/png" }
}
- const x11 = await $`xclip -selection clipboard -t image/png -o`.nothrow().text()
- if (x11) {
- return { data: Buffer.from(x11).toString("base64url"), mime: "image/png" }
+ const x11 = await $`xclip -selection clipboard -t image/png -o`.nothrow().arrayBuffer()
+ if (x11 && x11.byteLength > 0) {
+ return { data: Buffer.from(x11).toString("base64"), mime: "image/png" }
}
}
@@ -47,7 +47,7 @@ export namespace Clipboard {
if (base64) {
const imageBuffer = Buffer.from(base64.trim(), "base64")
if (imageBuffer.length > 0) {
- return { data: imageBuffer.toString("base64url"), mime: "image/png" }
+ return { data: imageBuffer.toString("base64"), mime: "image/png" }
}
}
}