This commit is contained in:
rari404 2025-12-23 15:42:42 +08:00 committed by GitHub
commit 8539dc6d34
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -176,6 +176,24 @@ function App() {
const exit = useExit()
const promptRef = usePromptRef()
// Wire up console copy-to-clipboard via opentui's onCopySelection callback
renderer.console.onCopySelection = async (text: string) => {
if (Flag.OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT) {
renderer.clearSelection()
return
}
if (!text || text.length === 0) return
const base64 = Buffer.from(text).toString("base64")
const osc52 = `\x1b]52;c;${base64}\x07`
const finalOsc52 = process.env["TMUX"] ? `\x1bPtmux;\x1b${osc52}\x1b\\` : osc52
// @ts-expect-error writeOut is not in type definitions
renderer.writeOut(finalOsc52)
await Clipboard.copy(text)
.then(() => toast.show({ message: "Copied to clipboard", variant: "info" }))
.catch(toast.error)
renderer.clearSelection()
}
const [terminalTitleEnabled, setTerminalTitleEnabled] = createSignal(kv.get("terminal_title_enabled", true))
createEffect(() => {
@ -444,7 +462,7 @@ function App() {
{
title: "Toggle console",
category: "System",
value: "app.fps",
value: "app.console",
onSelect: (dialog) => {
renderer.console.toggle()
dialog.clear()