似乎不是 Wayland 的问题?我在 Plasma Wayland 下可以看到如下环境变量:
❯ echo $XDG_SESSION_TYPE
wayland
❯ echo $XAUTHORITY
/run/user/1000/xauth_nyKfDz
Git Clone URL: | https://aur.archlinux.org/linuxqq-nt-bwrap.git (read-only, click to copy) |
---|---|
Package Base: | linuxqq-nt-bwrap |
Description: | New Linux QQ based on Electron, with bubblewrap sandbox and some tweaks |
Upstream URL: | https://im.qq.com/linuxqq/index.shtml |
Licenses: | custom |
Conflicts: | linuxqq |
Provides: | linuxqq, qq |
Submitter: | chiyuki0325 |
Maintainer: | chiyuki0325 (sukanka) |
Last Packager: | sukanka |
Votes: | 38 |
Popularity: | 1.00 |
First Submitted: | 2022-12-07 03:23 (UTC) |
Last Updated: | 2024-12-17 14:35 (UTC) |
似乎不是 Wayland 的问题?我在 Plasma Wayland 下可以看到如下环境变量:
❯ echo $XDG_SESSION_TYPE
wayland
❯ echo $XAUTHORITY
/run/user/1000/xauth_nyKfDz
start.sh
存在以下问题:
ln -sfd "/opt/QQ/resources/app" "${QQ_HOTUPDATE_DIR}/${QQ_HOTUPDATE_VERSION}"
之前没有mkdir -p ${QQ_HOTUPDATE_DIR}
,所以会失败${XAUTHORITY}
环境变量不存在(可能因为我是wayland),所以--ro-bind-try "${XAUTHORITY}" "${XAUTHORITY}"
相当于--ro-bind-try "" ""
,会把整个根文件系统bind mount进去,bwrap就失去意义了。试试 linuxqq-new 我毕竟不是 bwrap 高手,只是尝试打了这个包
x11 下运行报错
❯ qq-nt
Failed to open /dev/null
Failed to open /dev/null
[2:1212/185234.217361:ERROR:process_singleton_posix.cc(1131)] Failed to create socket directory.
[1212/185234.308245:ERROR:file_io_posix.cc(144)] open /proc/2/auxv: Permission denied (13)
[1212/185234.308299:WARNING:process_reader_linux.cc(125)] no stack mapping
[1212/185234.308456:WARNING:process_reader_linux.cc(125)] no stack mapping
you may get this error: "bwrap: Can't find source path /xxx/.Xauthority: No such file or directory". please update the qq start.sh script. at path:/opt/QQ/start.sh.then update '$HOME/.Xauthority' to $XAUTHORITY. if you can`t create dir ~/.config/QQ,you can create it by youself.这就ok了
bwrap 的時候沒有帶上 /etc/resolve.conf ,可能會造成一些問題。 建議在啓動腳本內加上
--ro-bind /etc/resolv.conf /etc/resolv.conf \
在 x11 下运行会有问题。
qq
[2:1207/064107.617694:ERROR:ozone_platform_x11.cc(247)] Missing X server or $DISPLAY
[2:1207/064107.617706:ERROR:env.cc(226)] The platform failed to initialize. Exiting.
Arch Wiki 的参考:https://wiki.archlinux.org/title/Bubblewrap
建议后面真正公测的时候加上 linuxqq 的冲突判断,desktop 文件会因为已有冲突。
Pinned Comments
chiyuki0325 commented on 2024-05-31 13:54 (UTC) (edited on 2024-05-31 13:54 (UTC) by chiyuki0325)
==== linuxqq-nt-bwrap 注意事项 ====
==> 要传递给 bwrap 的自定义参数应该写在 ~/.config/qq-bwrap-flags.conf,
可在此文件中设置自定义挂载目录。
==> 要传递给 electron 的自定义参数应该写在 ~/.config/qq-electron-flags.conf。
==> 如果要在 QQ 中下载文件,请先在 设置 -> 存储管理 中
把下载文件夹更改为系统的“下载”/“Downloads”文件夹。
==> 如果系统中安装了 Docker / ZeroTier / Tailscale 或配置了 TUN / TAP 网络设备,
则可以使用固定 MAC 地址模式启动 QQ 以修复自动登录问题。
当系统有上述网络设备时,安装 slirp4netns 和 socat 包再启动 QQ 即可使用此模式。
如果未安装上述网络设备,你也可以在 ~/.config/qq-fix-mac.conf 中写入任意内容,
或设置 QQ_FIX_MAC 环境变量为 1 来手动启用此模式。