Releases: SHORiN-KiWATA/linuxqq-wayland-fix
Release list
v0.2.7
Full Changelog: v0.2.6...v0.2.7
v0.2.6
v0.2.5
v0.2.4
v0.2.3:修复和 XWayland 程序之间的剪贴板冲突
修复
- QQ 运行时,在 XWayland 下的程序里复制会把剪贴板弄坏。Typora、CodeBuddy 等跑在 XWayland 下的程序复制后,其他程序粘贴拿到空内容,QQ 里的复制也可能失效。原因是剪贴板修复把合成器(xwayland-satellite、KWin、wlroots)对这次复制的同步,误当成了「别的程序复制了」,去抢那个程序的剪贴板,合成器又同步回来,形成循环。现在:
- 能识别 X11 程序(包括 QQ 自己)刚复制后的同步,不再去抢;
- 已经持有剪贴板时只更新内容,不再反复接管,避免和 fcitx5 等监听剪贴板的程序来回触发。
- #5(KDE Plasma 下面板卡死)很可能也是这个原因,欢迎更新后反馈。
- 屏幕共享修复的库不再遮挡其他预加载工具的
getenv(例如 zypak),兼容性更好。
如果之前遇到过剪贴板失效
剪贴板历史工具(如 wl-paste --watch cliphist store)可能在那时卡住,之后不再记录。更新后请重启它,或重新登录一次。
安装 / 更新
| 发行版 | 文件 |
|---|---|
| Arch Linux | AUR:paru -S linuxqq-wayland-fix-git,或下方 .pkg.tar.zst(需先装 linuxqq) |
| Debian 12+ | linuxqq-wayland-fix_0.2.3-1.debian12_amd64.deb |
| Ubuntu 24.04+ | linuxqq-wayland-fix_0.2.3-1.ubuntu24.04_amd64.deb |
| Fedora 43+ | linuxqq-wayland-fix-0.2.3-1.fc43.x86_64.rpm |
更新后请完全退出 QQ(包括托盘)再从「QQ(Wayland修复版)」打开。
完整变更:v0.2.2...v0.2.3
v0.2.2:修复按截图键闪退
修复
- 按截图键(Ctrl+Alt+A)QQ 立即闪退。从「QQ(Wayland修复版)」打开的 QQ 会用 X11 的方式截全屏,而 Wayland 下的 XWayland 根窗口没有画面,截取必然失败,QQ 随即崩溃。现在改为从 Wayland 截取各块屏幕,拼好后交给 QQ。
- niri、Hyprland、sway、labwc 等支持
wlr-screencopy的合成器能截到真实画面;KDE、GNOME 下截图背景是黑的,但不会再闪退。 - 新增
libqq-screenshot.so,可用QQ_SCREENSHOT_FIX_DISABLE=1单独关闭。
- niri、Hyprland、sway、labwc 等支持
已知问题
- QQ 的截图窗口是按「和整个桌面一样大」设计的,Wayland 下程序无法自己指定窗口位置和大小,在 niri 这类平铺式合成器上会被当成普通窗口平铺,画面会重复显示。可以改用合成器自带的截图,复制到剪贴板后再粘贴进 QQ。
安装 / 更新
| 发行版 | 文件 |
|---|---|
| Arch Linux | AUR:paru -S linuxqq-wayland-fix-git,或下方 .pkg.tar.zst(需先装 linuxqq) |
| Debian 12+ | linuxqq-wayland-fix_0.2.2-1.debian12_amd64.deb |
| Ubuntu 24.04+ | linuxqq-wayland-fix_0.2.2-1.ubuntu24.04_amd64.deb |
| Fedora 43+ | linuxqq-wayland-fix-0.2.2-1.fc43.x86_64.rpm |
更新后请完全退出 QQ(包括托盘)再从「QQ(Wayland修复版)」打开。
完整变更:v0.2.1...v0.2.2
v0.2.1:修复显示器坐标偏移时共享闪退
修复
- 显示器坐标不从 0 开始时,点「确定」开始共享 QQ 会闪退(#1)。常见于 Hyprland 单屏设置了
position=1920x0、或拔掉外接屏后仍保留偏移。原因是 QQ 给共享相关的某个窗口算出了空的尺寸,随后在 Chromium 的 Wayland 后端里主动崩溃(崩溃记录里是signal: 5 (SIGTRAP))。现在遇到空尺寸时会跳过这个请求,不再崩溃,在 Hyprland、niri、KDE、sway 等合成器上都适用。- 问题由 @YoungJurry 定位并在 #2 中提交了最初的修复,感谢!
- 只在 QQ 主进程生效;QQ 更新后对应代码对不上时会自动不启用,
--doctor会提示。 - 可用
QQ_WL_GEOMETRY_FIX_DISABLE=1单独关闭。
安装 / 更新
| 发行版 | 文件 |
|---|---|
| Arch Linux | AUR:paru -S linuxqq-wayland-fix-git,或下方 .pkg.tar.zst(需先装 linuxqq) |
| Debian 12+ | linuxqq-wayland-fix_0.2.1-1.debian12_amd64.deb |
| Ubuntu 24.04+ | linuxqq-wayland-fix_0.2.1-1.ubuntu24.04_amd64.deb |
| Fedora 43+ | linuxqq-wayland-fix-0.2.1-1.fc43.x86_64.rpm |
更新后请完全退出 QQ(包括托盘)再从「QQ(Wayland修复版)」打开。
完整变更:v0.2.0...v0.2.1
v0.2.0:合并屏幕共享与剪贴板修复
本版本把屏幕共享修复和剪贴板修复合并成一个包:linuxqq-wayland-fix。安装后从应用菜单打开「QQ(Wayland修复版)」即可。
修复的问题
| 问题 | |
|---|---|
| 屏幕共享不能用(提示「Wayland桌面环境暂时无法使用屏幕分享功能」,或对方黑屏) | ✅ |
| 共享时开了「共享设备音频」,对方听不到电脑的声音 | ✅ |
| 右键复制的消息、图片、文件进不了系统剪贴板 | ✅ 新增 |
| 别的程序复制的内容、截图、文件粘贴不进 QQ | ✅ 新增 |
变化
- 新增剪贴板修复:在 QQ 进程内双向桥接 X11 与 Wayland 剪贴板。按需传输、没有同步空窗期、保留全部格式。需要合成器支持 data-control(niri、KDE、Hyprland、sway 等;GNOME 不支持)。QQ 以 X11 方式运行时自动不启用。
- 改名:包、命令和菜单入口统一为
linuxqq-wayland-fix/「QQ(Wayland修复版)」,原linuxqq-wayland-native-screenshare-fix不再使用。 - 共享单个窗口时,修正 QQ 忽略行跨度导致的画面斜切。
--doctor合并为一份自检,覆盖屏幕共享、设备音频和剪贴板。- 崩溃记录保存到
~/.cache/linuxqq-wayland-fix/crash/。
从旧包迁移
- AUR:
linuxqq-wayland-native-screenshare-fix-git、linuxqq-wayland-clipboard-fix-git、linuxqq-clipsync-git已改为过渡包,正常更新即会装上linuxqq-wayland-fix-git,之后可以卸载这些过渡包。 - linuxqq-clipsync 用户:本版本已包含剪贴板修复,请停用旧服务:
systemctl --user disable --now linuxqq-clipsync。 - deb / rpm:卸载旧的
linuxqq-wayland-native-screenshare-fix,安装下方新包。
安装
| 发行版 | 文件 |
|---|---|
| Arch Linux | AUR:paru -S linuxqq-wayland-fix-git,或下方 .pkg.tar.zst(需先装 linuxqq) |
| Debian 12+ | linuxqq-wayland-fix_0.2.0-1.debian12_amd64.deb |
| Ubuntu 24.04+ | linuxqq-wayland-fix_0.2.0-1.ubuntu24.04_amd64.deb |
| Fedora 43+ | linuxqq-wayland-fix-0.2.0-1.fc43.x86_64.rpm |
已知问题
- 使用 Easy Effects 时,需在它的「输入」「输出」排除名单里加上
TRAE,否则 QQ 一开通话 / 共享就会崩溃。 - 全屏蓝色共享边框暂未处理;流畅度取决于 QQ 自己的编码。
- 只支持
linuxqq(实测)与linuxqq-appimage(经分析应可用),不支持沙盒版。
实测环境:Arch Linux + niri + xwayland-satellite,QQ 3.2.34-53644。
v0.1.0
本版本只含屏幕共享修复,包名为旧的 linuxqq-wayland-native-screenshare-fix。请使用 v0.2.0 及以后的版本(linuxqq-wayland-fix,含剪贴板修复)。
首个正式版本:让 Linux QQ 在 Wayland 下正常共享屏幕和共享电脑声音。
QQ 自带一套 xdg-desktop-portal + PipeWire 的 Wayland 采集代码,但缺少「选择共享源」这一步,一直没有启用。本项目补上这一步,让 QQ 自己的代码直接从合成器拿画面:不搬运画面、不冒充 X11 截屏,也不修改任何 QQ 文件。
功能
- 屏幕 / 窗口共享:由合成器弹出 portal 选择框(实测 niri;KDE、GNOME、wlroots 系理论可用)
- 共享设备音频:修复声卡原生格式为 s32le / s24le 时 QQ 静默失败、对方听不到电脑声音的问题
- QQ 采集代码的行跨度 bug:共享内存帧带行填充时自动重排,避免画面斜切
- 规避 QQ 自身崩溃:QQ 自带 zstd 与 Mesa 着色器缓存冲突(启动脚本自动设置
MESA_SHADER_CACHE_DISABLE=true) - 应用菜单入口「QQ(屏幕共享修复)」,开箱即用
linuxqq-wayland-native-screenshare-fix --doctor:检查环境,以及 QQ 更新后本工具是否仍然适用- QQ 崩溃时自动保存 Bugly 崩溃记录到
~/.cache/linuxqq-wayland-native-screenshare-fix/crash/
安装
| 发行版 | 文件 |
|---|---|
| Arch Linux | AUR:paru -S linuxqq-wayland-native-screenshare-fix-git,或下方 .pkg.tar.zst(需先装 linuxqq) |
| Debian 12+ | …_0.1.0-1.debian12_amd64.deb |
| Ubuntu 24.04+ | …_0.1.0-1.ubuntu24.04_amd64.deb |
| Fedora 43+ | …-0.1.0-1.fc43.x86_64.rpm |
QQ 本体需另外安装。
必读
- Easy Effects 用户:在 Easy Effects 的「输入」「输出」排除名单里都加上
TRAE,QQ 麦克风选「Easy Effects Source」,否则 QQ 一开通话 / 共享就会崩溃(QQ 音频模块的竞态 bug)。 - 全屏蓝色边框:QQ 为 X11 设计的共享边框在 Wayland 下会成为真实窗口,暂未处理。
- 流畅度:取决于 QQ 自己的单线程软件编码,本项目无法改善。共享单个窗口会更流畅。
- niri 上用 Linux QQ 3.2.34 观看共享可能花屏:原版 QQ 同样如此,与本项目无关,手机和 Windows 观看正常。
测试环境
Arch Linux + niri + xwayland-satellite,QQ 3.2.34-53644(台式机与笔记本)。