OpenCode 在 Linux 终端显示已复制但剪贴板为空:Wayland 与 X11 修复

处理 OpenCode 在 Ubuntu 22.04 终端提示 Copied to clipboard、但实际无法粘贴的问题。

适用环境:Ubuntu 22.04 LTS,使用 OpenCode 时选中文字后显示 Copied to clipboard,但在其他应用中无法粘贴。本文针对 OpenCode 的剪贴板依赖缺失,不是普通终端快捷键设置问题。

问题原因

OpenCode 需要调用桌面会话对应的剪贴板工具。Wayland 会话通常使用 wl-clipboard 提供的 wl-copy / wl-paste;X11 会话常使用 xclip。若系统缺少对应工具,OpenCode 可能显示复制成功,但实际没有可供其他程序读取的剪贴板内容。

1. 确认当前图形会话

1
echo "$XDG_SESSION_TYPE"

常见输出为 waylandx11。不要根据桌面名称猜测;同一台 Ubuntu 机器可能在登录时切换 Wayland 与 “Ubuntu on Xorg”。

2. 按会话类型安装剪贴板工具

若输出为 wayland

1
2
sudo apt update
sudo apt install wl-clipboard

若输出为 x11

1
2
sudo apt update
sudo apt install xclip

安装完成后退出并重新启动 OpenCode,再测试复制。通常不需要重启系统。

3. 可选:直接验证系统剪贴板

Wayland:

1
2
printf 'clipboard test' | wl-copy
wl-paste

X11:

1
2
printf 'clipboard test' | xclip -selection clipboard
xclip -o -selection clipboard

两条命令能输出相同文本时,说明系统剪贴板工具已经可用;若 OpenCode 仍失败,再检查 OpenCode 的版本与上游 issue。普通终端中的 Ctrl+C 仍是中断前台程序,文本复制一般使用 Ctrl+Shift+C

出处

本文已依据补充提供的原始 HTML 重制,保留其 Wayland / X11 分流方案,并增加了工具验证与 OpenCode 重启步骤。