Package Details: wechat-universal-bwrap 4.0.1.11-1

Git Clone URL: https://aur.archlinux.org/wechat-universal-bwrap.git (read-only, click to copy)
Package Base: wechat-universal-bwrap
Description: WeChat (Universal) with bwrap sandbox
Upstream URL: https://linux.weixin.qq.com/
Licenses: GPLv3, proprietary
Conflicts: wechat-universal
Provides: wechat-universal
Replaces: wechat-beta, wechat-beta-bwrap
Submitter: 7Ji
Maintainer: 7Ji (leaeasy)
Last Packager: 7Ji
Votes: 129
Popularity: 3.94
First Submitted: 2024-03-14 03:09 (UTC)
Last Updated: 2024-12-24 07:50 (UTC)

Pinned Comments

shilka commented on 2025-02-13 11:08 (UTC)

@dazuixia @lyhokia @swimming03 你们是否也使用了非GNOME/KDE的其他wayland WM/DE? 又研究了一下这个问题,如果不使用bwrap沙盒直接执行wechat是可以的,排除了wechat本身的问题。我认为问题出在bwrap、xwayland的配合和调用上面,导致微信无法在xwayland中启动。我使用的WM是Hyprland,推测可能和各个WM/DE有一定的关系。目前我找到一个可行的缓解方式,安装:xwayland-satellite,并提前执行这一程序,之后正常启动wechat-universal。

@7Ji 如果其他人也可以缓解,烦请置顶一下这个解决方案,或者如果您很熟悉bwrap,是否可以看看通过某些参数解决它和xwayland的交互问题。

7Ji commented on 2024-03-14 06:21 (UTC) (edited on 2024-12-26 09:08 (UTC) by 7Ji)

本软件包在Github上亦有仓库: https://github.com/7Ji-PKGBUILDs/wechat-universal-bwrap/ (仓库未启用issues,有问题请直接在此页面提出)

各位如有改进意见,欢迎在Github仓库页提交PR :)

抓取新版本的脚本和PKGBUILD在同一层。执行python fetch_uos_wechat_release.py获取UOS仓库内的重打包版本,执行./fetch_tencent_wechat_release.sh获取腾讯官方的版本。如果发现软件过期,请善用本界面的标记过期功能。:)


默认配置下,只有~/Documents/WeChat_Data/home 作为容器内的~,其他宿主文件和文件夹均不暴露在容器内

可以编写~/.config/wechat-universal/binds.list来设置更多的被暴露到容器内的文件/文件夹,每行一个路径,绝对路径或相对于~的相对路径


要将微信文件的主要路径修改至 ~/Documents/WeChat_Data 外的其他路径,请设置环境变量 WECHAT_DATA_DIR,同理为绝对路径或相对于~的相对路径


更多参数与环境变量,请在命令行输入 wechat-universal --help 查看

Latest Comments

« First ‹ Previous 1 .. 23 24 25 26 27 28 29 30 31 32 33 .. 39 Next › Last »

<deleted-account> commented on 2024-03-14 05:25 (UTC)

在kde中使用--setenv QT_AUTO_SCREEN_SCALE_FACTOR 1是有效的,只是-z的检测会无法检测到QT_AUTO_SCREEN_SCALE_FACTOR的全局变量(暂时我本地无法检测),测试环境是多屏且不同缩放比,执行kreadconfig6 --group KScreen --key ScaleFactor为空,default为1的情况下会缩放失败。

能否在kde -z 无法检测到QT_AUTO_SCREEN_SCALE_FACTOR且kreadconfig6 --group KScreen --key ScaleFactor为空时设置QT_AUTO_SCREEN_SCALE_FACTOR为1?或者直接不判断QT_AUTO_SCREEN_SCALE_FACTOR是否存在直接设置QT_AUTO_SCREEN_SCALE_FACTOR为1?我不清楚这样是否会对无缩放的用户产生什么影响

sfchen-cs6589043 commented on 2024-03-14 05:19 (UTC) (edited on 2024-03-14 05:58 (UTC) by sfchen-cs6589043)

@7Ji gnome 将微信最大化后, 点击左侧的 视频号等内置浏览器入口后, 打开以后无法显示的 空窗口一直闪烁; 软件最小化后, 在打开,在默认大小窗口下, 打开左侧功能正常,是不是bug啊

打开后 透明涂层以后

QWidget::setLayout: Attempting to set QLayout "" on mmui::ChatBubbleFrame "", which already has a layout
QWidget::setLayout: Attempting to set QLayout "" on mmui::ChatBubbleFrame "", which already has a layout

是否可以参考下 https://github.com/web1n/wechat-beta-flatpak/tree/2403131343 使用该项目 没有该问题


XDwanj commented on 2024-03-14 04:12 (UTC) (edited on 2024-03-14 04:14 (UTC) by XDwanj)

@7Ji 有考虑过像 aur/linuxqq-nt-bwrap 一样把 "$(xdg-user-dir DOWNLOAD)" 导入沙箱中吗?

这样另存文件和发送文件更方便。

rc256 commented on 2024-03-14 04:08 (UTC) (edited on 2024-03-14 04:10 (UTC) by rc256)

报找不到 /usr/lib/dri/amdgpu_dri.so的问题,需要在BWRAP_ARGS里增加sys相关的bind:

BWRAP_ARGS=(
        ...
        # /sys
        --ro-bind /sys/dev/char /sys/dev/char
        --ro-bind /sys/devices /sys/devices
        ...

这是因为mesa会在这两个路径下寻找可用的gpu设备。参考Kimiblock的wechat-uos-bwrap。

7Ji commented on 2024-03-14 03:26 (UTC)

因为微信的原生Linux客户端现在已经作为“微信(Universal)”正式发布(见统信社区博客),不再为Beta版,本包将改名wechat-universal-bwrap。我已经将完整的git历史提交到了universal。

因AUR的限制,软件包不能直接改名,只能作为新软件包提交后,再提交合并请求。在合并前这两个PKGBUILD会共存。评论等内容在合并后也会转移到universal上。为了避免混乱(这个包名为beta却提供了universal的打包),新commit不会再往这边推送。

7Ji commented on 2024-03-14 03:20 (UTC)

@sfchen-cs6589043 这里保留了wechat-beta-bwrap的所有提交历史。我已经提交了将wechat-beta-bwrap merge到这个PKGBUILD的请求,通过的话,原来的评论等都会合并到这里。新更新就不推到-beta了,因为原生Linux客户端现在已经不是Beta了。

sfchen-cs6589043 commented on 2024-03-14 03:18 (UTC)

请问下 以后就到这里 wechat-beta-bwrap 后面会放弃维护吗

ihipop commented on 2024-03-14 03:08 (UTC) (edited on 2024-03-15 01:20 (UTC) by ihipop)

@XDwan 可能是因为这个作者封装的路径不一致

在另一个类似的bwrap wechat的aur包里面我测试过是好的。记得修改完毕重启UOS微信。

要解决也很简单的,如果内外真的不一样,调用dbus之前做一下路径转换就行。

具体作者进行一下适配就很简单。实际上传递给dbus的参数不需要真的存在于沙箱或者在沙箱内可以访问。 外部文件浏览器在外部能访问就行了。

核心逻辑是:底层还是应该进行dbus调用org.freedesktop.FileManager1而不是文件系统调用。

当然,DBUS通信的权限肯定是要给的。