diff options
| author | frankdierolf <[email protected]> | 2025-11-03 15:21:13 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-03 09:21:13 -0500 |
| commit | 2c3aa330b92bcc981d271c34388ac4ed2242b670 (patch) | |
| tree | c00903996262dfbfaf003e1a8fa83ed5ecde345c | |
| parent | 47b2fb79dc3cb65ae6b8a4ba1eff0565a90da882 (diff) | |
| download | opencode-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.ts | 14 |
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" } } } } |
