diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | wechat.sh | 31 |
3 files changed, 28 insertions, 19 deletions
@@ -1,12 +1,12 @@ pkgbase = wechat-uos-bwrap - pkgdesc = WeChat Qt w/ bwrap sandbox + pkgdesc = WeChat Qt pkgver = 1.0.0.241 - pkgrel = 7 + pkgrel = 8 url = https://weixin.qq.com/ arch = x86_64 arch = aarch64 arch = loong64 - license = proprietary + license = LicenseRef-proprietary makedepends = libarchive depends = findutils depends = zenity @@ -61,7 +61,7 @@ pkgbase = wechat-uos-bwrap source = license.tar.gz source = user-dirs.dirs source = wechat.env - md5sums = 813f4f1858b3e04ffb01074e24979f01 + md5sums = 675b22efe5568cead13bacd20bc39ca9 md5sums = 82a5663ce32a0504f1f7575d51f2c7cb md5sums = 600e74549ce2258c045d5c2f7689ea63 md5sums = dfc069e6c8d9dbaa90fe388cab4002c9 @@ -1,9 +1,9 @@ # Maintainer: Kimiblock Moe pkgname=(wechat-uos-bwrap wechat-uos-qt) pkgver=1.0.0.241 -pkgrel=7 +pkgrel=8 epoch= -pkgdesc="WeChat Qt w/ bwrap sandbox" +pkgdesc="WeChat Qt" arch=('x86_64' 'aarch64' 'loong64') url="https://weixin.qq.com/" license=('LicenseRef-proprietary') @@ -87,7 +87,7 @@ source_loong64=( wechat-loong64-${pkgver}.deb::"https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_${pkgver}_arm64.deb" ) -md5sums=('b70d5263b49234a9aedf18641c9128c1' +md5sums=('675b22efe5568cead13bacd20bc39ca9' '82a5663ce32a0504f1f7575d51f2c7cb' '600e74549ce2258c045d5c2f7689ea63' 'dfc069e6c8d9dbaa90fe388cab4002c9' @@ -116,6 +116,8 @@ function package_wechat-uos-qt() { chmod 0755 "${pkgdir}/usr/lib/license" -R cp "${srcdir}/license"/* -r "${pkgdir}/usr/share/wechat-uos-qt/license" chmod 0755 -R "${pkgdir}/usr/share/wechat-uos-qt/license" + install -d "${pkgdir}/usr/share/licenses/${pkgname}/" + echo "https://www.wechat.com/us/service_terms.html" >"${pkgdir}/usr/share/licenses/${pkgname}/ToS.txt" } function package_wechat-uos-bwrap() { diff --git a/wechat.sh b/wechat.sh index 8ebb9528db82..50658e0e9a88 100644 --- a/wechat.sh +++ b/wechat.sh @@ -63,12 +63,18 @@ function createWrapIfNotExist() { function inputMethod() { if [[ ${XMODIFIERS} =~ fcitx ]]; then - export QT_IM_MODULE=fcitx - export GTK_IM_MODULE=fcitx + QT_IM_MODULE=fcitx + GTK_IM_MODULE=fcitx elif [[ ${XMODIFIERS} =~ ibus ]]; then - export QT_IM_MODULE=ibus - export GTK_IM_MODULE=ibus - export IBUS_USE_PORTAL=1 + QT_IM_MODULE=ibus + GTK_IM_MODULE=ibus + IBUS_USE_PORTAL=1 + elif [[ ${XMODIFIERS} =~ gcin ]]; then + QT_IM_MODULE=ibus + GTK_IM_MODULE=gcin + LC_CTYPE=zh_TW.UTF-8 + else + echo '[Warn] Input Method potentially broken! Please set $XMODIFIERS properly' fi } @@ -82,7 +88,7 @@ function lnDir() { function importEnv() { if [ -e "${XDG_DATA_HOME}"/WeChat_Data/wechat.env ]; then - echo "[Info] Sourcing env vars..." + echo "[Info] ${XDG_DATA_HOME}/WeChat_Data/wechat.env exists" else touch "${XDG_DATA_HOME}"/WeChat_Data/wechat.env fi @@ -115,13 +121,13 @@ function execApp() { importEnv systemd-run --user ${sdOption} \ -p CPUWeight=50 \ - -p IOWeight=50 \ + -p IOWeight=40 \ -p IPAccounting=yes \ -p UnsetEnvironment=XDG_CURRENT_DESKTOP \ + -p UnsetEnvironment=WAYLAND_DISPLAY \ + -p UnsetEnvironment=XDG_SESSION_TYPE \ -p PrivateIPC=yes \ - -p DeviceAllow=/dev/dri/* \ - -p DeviceAllow=/dev/video* \ - -p DevicePolicy=closed \ + -p DevicePolicy=strict \ -p EnvironmentFile=/usr/lib/wechat-uos-qt/envs \ -p EnvironmentFile="${XDG_DATA_HOME}"/WeChat_Data/wechat.env \ -p Environment=GTK_IM_MODULE="${GTK_IM_MODULE}" \ @@ -166,11 +172,10 @@ function execApp() { -p PrivateTmp=yes \ -- \ bwrap \ - --unsetenv WAYLAND_DISPLAY \ - --cap-drop ALL \ --dev /dev \ --dev-bind /dev/dri /dev/dri \ --dev-bind /dev/shm /dev/shm \ + --tmpfs /sys \ --ro-bind /sys/dev/char /sys/dev/char \ --ro-bind /sys/devices /sys/devices \ --proc /proc \ @@ -193,6 +198,8 @@ function execApp() { --ro-bind-try "${XAUTHORITY}" "${XAUTHORITY}" \ --unshare-all \ --share-net \ + --unshare-user \ + --disable-userns \ --ro-bind /usr/lib/wechat-uos-qt/open \ /sandbox/dde-file-manager \ --ro-bind /usr/share/wechat-uos-qt/license/var/ /var/ \ |