2021 年腾讯发布了腾讯会议 Linux 原生版本,基于 QT5,相比于 wine 体验还是有提升的,至少我在使用 wine 版本时会有麦克风摄像头不能用的情况,原生版本就没有问题。

安装

腾讯会议在官网已经放出了 Linux 下载地址,下载安装即可。

体验

体验了一会还是发现不少问题的

  1. 首先就是缩放问题,程序运行在我的 2K 显示器上字体小的像蚂蚁,而且即便是系统设置和环境变量已经设为两倍缩放对于它还是没有效果。

  2. 还有个问题就是不能识别扩展屏,这个还是群友发现的,由于我只有一个笔记本内屏,这个我就没法测试了。

HiDPI

我去问了一下腾讯会议的客服是否支持 HiDPI,官方给出的回答是尚不支持,那只能自己解决了。

AUR

查资料怎么能少的了 AUR,毕竟 ARCH 是万能的。
wemeet-bin 万能的 AUR 给出了打包的脚本,我们照做。

# PKGBUILD

#maintainer: sukanka<su975853527[AT]gmail.com>
pkgname=wemeet-bin
_pkgname=wemeet
provides=('wemeet' 'tencent-meeting')
pkgver=2.8.0.3
pkgrel=1
pkgdesc="Tencent Video Conferencing, tencent meeting 腾讯会议"
arch=('x86_64')
license=('unknown')
url="https://source.meeting.qq.com/download-center.html"
source=("${_pkgname}-${pkgver}-${arch}.deb::https://updatecdn.meeting.qq.com/cos/3cdd365cd90f221fb345ab73c4746e1f/TencentMeeting_0300000000_${pkgver}_${arch}_default.publish.deb"
"${_pkgname}".sh
)
depends=('qt5-x11extras' 'hicolor-icon-theme' 'libbsd'  'libxrandr' 'qt5-webkit' 'libxinerama' 'libpulse')
optdepends=('bubblewrap: Fix abnormal text color in dark mode.')
sha512sums=('5cd8bf0eddd56a4eb0983bf530b341d5078b852a9dd51b1d941659331fe13d2dd5738ca1c8799fe9d765e334175c29aad991c58dd2df9aef3ab192b88cbd0a47'
            'e3470c08229b367d6caf5348830b0e7c7fb8561cf36e73eec42eb0a185772c2985b8e66ccfda64456b4ff1badf5173a3851bb789124e18f8c6aa3bb651ee4db0')


package() {
    tar xpf data.tar.xz -C ${pkgdir}
    cd ${pkgdir}/usr/share/applications
    sed -i '4c Exec=wemeet %u ' ${_pkgname}app.desktop 
    sed -i '5c Icon=wemeet' ${_pkgname}app.desktop 
    sed -i '$i Comment=Tencent Meeting Linux Client\nComment[zh_CN]=腾讯会议Linux客户端\nKeywords=wemeet;tencent;meeting;' "${pkgdir}/usr/share/applications/wemeetapp.desktop"
    
    cd ${pkgdir}/opt/${_pkgname}
    
    for res in {16,32,64,128,256}
    do
        mkdir -p ${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps;
        mv icons/hicolor/${res}x${res}/mimetypes/${_pkgname}app.png ${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/${_pkgname}app.png;
    done
    
    sed -i '4c Prefix = /usr/lib/qt' bin/qt.conf
    
    install -Dm755 "${srcdir}/${_pkgname}".sh     ${pkgdir}/usr/bin/${_pkgname}
    install -Dm644 ${_pkgname}.svg -t ${pkgdir}/usr/share/icons/hicolor/scalable/apps/
    
    mkdir -p ${pkgdir}/usr/lib/${_pkgname}
    mv lib/{libwemeet*,libxcast.so,libxnn*,libtquic.so} ${pkgdir}/usr/lib/${_pkgname}
    cp bin/raw/xcast.conf ${pkgdir}/opt/${_pkgname}/bin/
    
    rm -rf plugins icons lib/libQt* lib wemeetapp.sh "${_pkgname}".svg
    
    
}

先补全脚本所需的变量,srcdir pkgdir

package() {
    pkgdir=~/workspace/wemeet-bin/pkg
    srcdir=~/workspace/wemeet-bin
    tar xpf data.tar.xz -C ${pkgdir} ...

下载腾讯会议的 deb 包,解压出 data.tar.xz ,放到 srcdir
执行脚本

$ source PKGBUILD
$ package

于是在 pkgdir 会生成 AUR 包所需的所有文件,我们需要的是 deb,所以咱们打包 deb,先把原包的 DEBIAN 文件解压出来,然后在 srcdir 新建目录 DEBIAN

$ cp path/to/DEBIAN(文件) path/to/DEBIAN(目录)/control
$ dpkg -b pkg

打包完安装,执行。
现在的 HiDPI 应该就可以正常显示了。
虽然有一些 bug,图标和字体会重叠。

闪退

如果你也是使用基于 Ubuntu 的发行版,你可能会闪退,我们打开 /usr/lib/wemeet

#!/bin/sh
export PATH=$PATH:/opt/wemeet/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/wemeet
export QT_PLUGIN_PATH="/usr/lib/qt/plugins"
export XDG_SESSION_TYPE=x11
export QT_QPA_PLATFORM=xcb
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_STYLE_OVERRIDE=fusion # 解决使用自带qt情况下,字体颜色全白看不到的问题
unset WAYLAND_DISPLAY
if [ -f "/usr/bin/bwrap" ];then
    bwrap --dev-bind / / --tmpfs $HOME/.config --ro-bind $HOME/.config/fontconfig $HOME/.config/fontconfig wemeetapp $*;
else
    exec wemeetapp $*;
fi; 

检查一下,发现

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/wemeet
export QT_PLUGIN_PATH="/usr/lib/qt/plugins"

首先,LD_LIBRARY_PATH 在 Ubuntu 下默认是空的,而 /usr/lib/qt/plugins 这个目录不存在,我们做一下修改

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/usr/lib/wemeet
export QT_PLUGIN_PATH="/usr/lib/x86_64-linux-gnu/qt5/plugins"

就可以正常运行了。

回顾一下,其实就是使用系统的 QT 库,而不使用软件包自带的,问题就解决了,我发现在腾讯会议发布后紧随其后的钉钉 Linux客户端也有这个问题,看看能不能举一反三一起解决了。

Q.E.D.