Skip to content

Releases: SHORiN-KiWATA/linuxqq-wayland-fix

v0.2.7

Choose a tag to compare

@github-actions github-actions released this 02 Oct 15:32

Full Changelog: v0.2.6...v0.2.7

v0.2.6

Choose a tag to compare

@github-actions github-actions released this 02 Oct 14:52

Full Changelog: v0.2.5...v0.2.6

v0.2.5

Choose a tag to compare

@github-actions github-actions released this 02 Oct 14:07

Full Changelog: v0.2.4...v0.2.5

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 02 Oct 12:18

Full Changelog: v0.2.3...v0.2.4

v0.2.3:修复和 XWayland 程序之间的剪贴板冲突

Choose a tag to compare

@github-actions github-actions released this 02 Oct 04:32

修复

  • 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:修复按截图键闪退

Choose a tag to compare

@github-actions github-actions released this 01 Oct 17:25

修复

  • 按截图键(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 单独关闭。

已知问题

  • 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:修复显示器坐标偏移时共享闪退

Choose a tag to compare

@github-actions github-actions released this 01 Oct 16:05

修复

  • 显示器坐标不从 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:合并屏幕共享与剪贴板修复

Choose a tag to compare

@github-actions github-actions released this 01 Oct 14:00

本版本把屏幕共享修复和剪贴板修复合并成一个包: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

Choose a tag to compare

@github-actions github-actions released this 01 Oct 11:43

本版本只含屏幕共享修复,包名为旧的 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(台式机与笔记本)。

详见 README 与 原理详解。