摘要
在 Ubuntu 24.04(GNOME 46)从 Xorg 会话切换到 Wayland 会话后,CopyQ 剪贴板管理器无法再记录复制内容。本文分析其根本原因,并给出两种解决方案,重点说明在保留 Wayland 会话的前提下改用 GNOME 原生剪贴板工具 GPaste 的完整步骤。
适用环境:Ubuntu 24.04 / GNOME Shell 46 / Wayland。
一、问题现象
- 复制内容后,CopyQ 历史列表不更新,弹出窗口仍显示旧记录。
- 卸载重装 CopyQ、删除配置后重建,问题依旧。
二、问题定位
2.1 确认会话类型
echo$XDG_SESSION_TYPE输出为wayland,说明当前运行在 Wayland 会话下。
2.2 检查 CopyQ 监听状态
copyq monitoring返回false,表示剪贴板监听处于关闭状态。手动启用:
copyqenablecopyq monitoring# 返回 true启用后复制新内容,查看历史第一条:
copyqread0即使monitoring显示为true,复制的新内容仍无法被捕获,read 0始终返回旧记录。
2.3 验证系统剪贴板本身是否正常
使用 Wayland 原生工具测试(如未安装,执行sudo apt install wl-clipboard):
echo"test123"|wl-copy wl-paste# 正确返回 test123系统剪贴板读写正常,仅 CopyQ 无法捕获。据此可排除剪贴板本身或硬件问题,定位为 CopyQ 在 Wayland 下的监听失效。
三、原因分析
GNOME 的 Wayland 合成器(mutter)出于安全考虑,仅向当前聚焦的窗口暴露剪贴板内容,且不支持后台剪贴板监听协议wlr-data-control。
CopyQ 作为后台运行的程序,依赖监听其他窗口的剪贴板变化,该能力在 GNOME Wayland 下被限制,因此无法工作。
此前可正常使用,是因为登录的是 Xorg(X11)会话,X11 无此限制。系统更新后默认会话由 Xorg 切换为 Wayland,导致 CopyQ 失效。
同理,cliphist、clipman等依赖wlr-data-control协议的工具在 GNOME Wayland 下同样无法正常使用。
四、解决方案
方案 A:切换回 Xorg 会话
注销后在登录界面右下角齿轮中选择「Ubuntu on Xorg」并登录,CopyQ 即可恢复正常。
代价是放弃 Wayland 的相关特性(触摸板手势、混合 DPI、防撕裂等)。
方案 B:保留 Wayland,改用 GPaste(推荐)
GPaste 通过 GNOME 原生接口获取剪贴板内容,可在 Wayland 下正常工作,功能与 CopyQ 接近(历史记录、快捷键、图片支持)。以下为完整步骤。
五、GPaste 安装与配置
5.1 安装
安装核心守护进程与 GNOME Shell 扩展(提供顶栏图标和快捷键):
sudoaptupdatesudoaptinstall-ygpaste-2 gnome-shell-extension-gpaste安装后守护进程自动启动,可验证:
gpaste-client--version# 输出 GPaste 45pgrep-agpaste# 可见 gpaste-daemon 进程5.2 验证剪贴板捕获
守护进程负责剪贴板记录,扩展仅提供界面,因此安装后无需重启即可验证:
echo"test-gpaste"|wl-copy gpaste-clienthistory|head-3历史首条为test-gpaste,说明核心功能已生效。
5.3 停用 CopyQ
两个剪贴板管理器同时运行会相互覆盖,需退出 CopyQ 并禁用其开机自启:
# 退出当前实例copyqexit# 禁用开机自启(重命名而非删除,便于回退)mv~/.config/autostart/copyq.desktop ~/.config/autostart/copyq.desktop.disabled5.4 启用 GPaste 扩展
gnome-extensionsenableGPaste@gnome-shell-extensions.gnome.org若提示「扩展不存在」,是因为 Wayland 下无法热重载 GNOME Shell,当前 Shell 尚未扫描到新装扩展,注销重新登录后即可启用。
说明:X11 下可通过
Alt+F2输入r回车原地重启 Shell;Wayland 下不支持此操作,只能注销重登。该限制仅在安装或启用扩展时涉及,不影响日常使用。
如需在重登后自动启用,可将扩展 UUID 写入启用列表:
# 查看当前启用的扩展gsettings get org.gnome.shell enabled-extensions# 在原列表基础上追加 GPaste@gnome-shell-extensions.gnome.org,注意保留原有项5.5 配置(可选)
弹出历史的默认快捷键为Ctrl+Alt+G。如需改为Win+G(Super+G):
gsettingssetorg.gnome.GPaste launch-ui'<Super>g'其他常用配置:
# 历史保留条数,默认 100gsettingssetorg.gnome.GPaste max-history-size200# 启用图片历史,默认关闭gsettingssetorg.gnome.GPaste images-supporttrue快捷键由扩展注册,需注销重登后生效。
六、生效与使用
完成配置后注销并重新登录(仍选择 Wayland 会话)。重登后:
- 顶栏出现 GPaste 图标,点击可查看剪贴板历史;
- 按配置的快捷键(如
Win+G)弹出历史,选中即粘贴。
注销前请保存所有未保存的工作。注销仅关闭当前会话内的程序,不影响文件与系统配置。
七、常用命令
gpaste-clienthistory# 查看历史gpaste-client# 进入交互式选择gpaste-clientadd"文本"# 手动添加一条gpaste-client delete<序号># 删除指定条目gpaste-client empty# 清空历史八、小结
| 项目 | 说明 |
|---|---|
| 现象 | 会话切换到 Wayland 后 CopyQ 不再记录剪贴板 |
| 根因 | GNOME Wayland(mutter)不支持后台剪贴板监听协议wlr-data-control |
| 方案 A | 切回 Xorg 会话,继续使用 CopyQ |
| 方案 B | 保留 Wayland,改用 GNOME 原生工具 GPaste |
| 注意事项 | Wayland 下安装/启用扩展需注销重登,无法热重载 |