Skip to content

Commit 8d71e7e

Browse files
IgorTavcarclaude
andcommitted
fix(tui): use WinRT clipboard API on Windows (anomalyco#15951)
Cherry-picked from upstream PR anomalyco#15951. Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent d5ec360 commit 8d71e7e

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

packages/opencode/src/cli/cmd/tui/util/clipboard.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export namespace Clipboard {
126126
}
127127

128128
if (os === "win32") {
129-
console.log("clipboard: using powershell")
129+
console.log("clipboard: using windows runtime")
130130
return async (text: string) => {
131131
// Pipe via stdin to avoid PowerShell string interpolation ($env:FOO, $(), etc.)
132132
const proc = Process.spawn(
@@ -135,7 +135,7 @@ export namespace Clipboard {
135135
"-NonInteractive",
136136
"-NoProfile",
137137
"-Command",
138-
"[Console]::InputEncoding = [System.Text.Encoding]::UTF8; Set-Clipboard -Value ([Console]::In.ReadToEnd())",
138+
"[Console]::InputEncoding = [System.Text.Encoding]::UTF8; $null = [Windows.ApplicationModel.DataTransfer.DataPackage, Windows.ApplicationModel.DataTransfer, ContentType=WindowsRuntime]; $null = [Windows.ApplicationModel.DataTransfer.Clipboard, Windows.ApplicationModel.DataTransfer, ContentType=WindowsRuntime]; $pkg = New-Object Windows.ApplicationModel.DataTransfer.DataPackage; $pkg.SetText([Console]::In.ReadToEnd()); [Windows.ApplicationModel.DataTransfer.Clipboard]::SetContent($pkg); [Windows.ApplicationModel.DataTransfer.Clipboard]::Flush()",
139139
],
140140
{
141141
stdin: "pipe",

0 commit comments

Comments
 (0)