diff options
author | Codist | 2020-04-12 23:15:29 +0800 |
---|---|---|
committer | Codist | 2020-04-12 23:15:29 +0800 |
commit | 1e33df5058e80df282be36b5dc6aac9afa091b05 (patch) | |
tree | 2edb769b9f4cb0ec485015b28dd3968b2b1c9146 | |
parent | f24b4f8f85f51c4359942c536a1f6a3c00e39be0 (diff) | |
download | aur-1e33df5058e80df282be36b5dc6aac9afa091b05.tar.gz |
Remove 'popupshadow'
Signed-off-by: Codist <countstarlight@gmail.com>
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 12 | ||||
-rw-r--r-- | README.md | 87 | ||||
-rwxr-xr-x | run.sh | 28 | ||||
-rw-r--r-- | shadow.cpp | 13 | ||||
-rwxr-xr-x | shadow.exe | bin | 0 -> 11776 bytes |
6 files changed, 133 insertions, 13 deletions
@@ -1,7 +1,7 @@ pkgbase = deepin-wine-wechat pkgdesc = Tencent WeChat (com.wechat) on Deepin Wine For Archlinux pkgver = 2.8.0.133 - pkgrel = 2 + pkgrel = 3 url = https://weixin.qq.com/ install = deepin-wine-wechat.install arch = x86_64 @@ -23,10 +23,12 @@ pkgbase = deepin-wine-wechat source = WeChatSetup-2.8.0.133.exe::https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe source = run.sh source = reg.patch + source = shadow.exe md5sums = fe31cf4f0f6186fc1c99adc1512f5305 md5sums = 562d71c57e136a8aaa3be0d135092161 - md5sums = bb6327d7e6997a3d9e1852915bafd337 + md5sums = 3c6b1957562a99ff3c845a29b8569244 md5sums = f264f961704f2aa1d480971b0e58617a + md5sums = 0138f993c99d899e609bad85c2c9a15c pkgname = deepin-wine-wechat @@ -4,7 +4,7 @@ pkgname=deepin-wine-wechat pkgver=2.8.0.133 wechat_installer=WeChatSetup deepinwechatver=2.6.8.65deepin0 -pkgrel=2 +pkgrel=3 pkgdesc="Tencent WeChat (com.wechat) on Deepin Wine For Archlinux" arch=("x86_64") url="https://weixin.qq.com/" @@ -16,11 +16,13 @@ _mirror="https://mirrors.ustc.edu.cn/deepin" source=("$_mirror/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_${deepinwechatver}_i386.deb" "${wechat_installer}-${pkgver}.exe::https://dldir1.qq.com/weixin/Windows/${wechat_installer}.exe" "run.sh" - "reg.patch") + "reg.patch" + "shadow.exe") md5sums=('fe31cf4f0f6186fc1c99adc1512f5305' '562d71c57e136a8aaa3be0d135092161' - 'bb6327d7e6997a3d9e1852915bafd337' - 'f264f961704f2aa1d480971b0e58617a') + '3c6b1957562a99ff3c845a29b8569244' + 'f264f961704f2aa1d480971b0e58617a' + '0138f993c99d899e609bad85c2c9a15c') build() { msg "Extracting DPKG package ..." @@ -34,6 +36,8 @@ build() { rm -r "${srcdir}/deepinwechatdir/drive_c/Program Files/Tencent/WeChat" msg "Patching reg files ..." patch -p1 -d "${srcdir}/deepinwechatdir/" < "${srcdir}/reg.patch" + msg "Adding shadow.exe..." + cp "${srcdir}/shadow.exe" "${srcdir}/deepinwechatdir/drive_c/" msg "Creating font file link ..." ln -sf "/usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc" "${srcdir}/deepinwechatdir/drive_c/windows/Fonts/wqy-microhei.ttc" msg "Repackaging app archive ..." diff --git a/README.md b/README.md index fb49f4ab6de0..0f665d463548 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,11 @@ Deepin打包的微信(WeChat)容器移植到Archlinux,不依赖`deepin-wine` - [3. 对于非 GNOME 桌面(KDE, XFCE等)](#3-对于非-gnome-桌面kde-xfce等) - [4. 删除原先的微信目录](#4-删除原先的微信目录) - [5. 修复 `deepin-wine` 字体渲染发虚](#5-修复-deepin-wine-字体渲染发虚) -- [常见问题](#常见问题) +- [常见问题及解决](#常见问题及解决) + - [不能截图](#不能截图) + - [高分辨率屏幕支持](#高分辨率屏幕支持) + - [使用全局截图快捷键](#使用全局截图快捷键) + - [消除阴影边框](#消除阴影边框) - [感谢](#感谢) - [更新日志](#更新日志) @@ -205,12 +209,83 @@ yay -S lib32-freetype2-infinality-ultimate **注意:切换到 `deepin-wine` 后,对 `wine` 的修改,如更改dpi,都改为对 `deepin-wine` 的修改** -## 常见问题 +## 常见问题及解决 -- [ ] 1.不能视频通话 -- [x] 2.不能截图(切换到 `deepin-wine` 后解决) -- [x] 3.在 2k/4k 屏幕下字体和图标都非常小, 参见[issue1](https://github.com/countstarlight/deepin-wine-tim-arch/issues/1) -- [x] 4.使用全局截图快捷键和解决Gnome上窗口化问题,参见[issue2](https://github.com/countstarlight/deepin-wine-tim-arch/issues/2) +### 不能截图 + +参照[切换到 `deepin-wine`](#切换到-deepin-wine) 解决 + +### 高分辨率屏幕支持 + +在 2k/4k 屏幕下字体和图标都非常小, 参见[issue1](https://github.com/countstarlight/deepin-wine-tim-arch/issues/1) + +### 使用全局截图快捷键 + +使用全局截图快捷键和解决Gnome上窗口化问题,参见[issue2](https://github.com/countstarlight/deepin-wine-tim-arch/issues/2) + +### 消除阴影边框 + +微信窗口不在最上方时,在其他窗口上会显示一个阴影边框,根据[用山寨方法解决wine运行微信残留阴影窗口的问题](https://blog.kangkang.org/index.php/archives/397),对原程序稍做修改编译出[shadow.exe](shadow.exe),在微信启动时运行,自动消除这个阴影边框。 + +你也可以自行编译这个程序: + +```bash +# 安装windows交叉编译工具链 +yay -S mingw-w64-gcc + +# 编译 +i686-w64-mingw32-g++ -municode -m32 -s shadow.cpp -o shadow +``` + +对于 `v2.8.0.133-2` 及之前的版本,不自带这个程序,可以自行将[shadow.exe](shadow.exe)放置到 `~/.deepinwine/Deepin-WeChat/drive_c/shadow.exe` + +并参照[run.sh](run.sh)在 `/opt/deepinwine/apps/Deepin-WeChat/run.sh` 中加入如下几行: + +```diff + if [ ! -f "$WINEPREFIX/reinstalled" ] + then + touch $WINEPREFIX/reinstalled +- env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe ++ env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe & + else + #Support use native file dialog + export ATTACH_FILE_DIALOG=1 + + env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\Program Files\\Tencent\\WeChat\\WeChat.exe" & + fi ++ RemoveShadow + } + ++CheckProcess() ++{ ++ if [ "$1" = "" ]; then ++ return 1 ++ fi ++ ++ PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l` ++ if [ $PROCESS_NUM -eq 0 ]; then ++ return 1 ++ else ++ return 0 ++ fi ++} ++ ++# remove 'popupshadow' ++RemoveShadow() ++{ ++ CheckProcess "shadow.exe" ++ Check_RET=$? ++ # run 'shadow.exe' if process not exist ++ if [ $Check_RET -eq 1 ]; then ++ env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\shadow.exe" & ++ fi ++} ++ + SwitchToDeepinWine() + { + if [ -d "$WINEPREFIX" ]; then + +``` ## 感谢 @@ -28,13 +28,14 @@ CallApp() if [ ! -f "$WINEPREFIX/reinstalled" ] then touch $WINEPREFIX/reinstalled - env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe + env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe & else #Support use native file dialog export ATTACH_FILE_DIALOG=1 env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\Program Files\\Tencent\\WeChat\\WeChat.exe" & fi + RemoveShadow } ExtractApp() { @@ -94,6 +95,31 @@ CreateBottle() fi } +CheckProcess() +{ + if [ "$1" = "" ]; then + return 1 + fi + + PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l` + if [ $PROCESS_NUM -eq 0 ]; then + return 1 + else + return 0 + fi +} + +# remove 'popupshadow' +RemoveShadow() +{ + CheckProcess "shadow.exe" + Check_RET=$? + # run 'shadow.exe' if process not exist + if [ $Check_RET -eq 1 ]; then + env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\shadow.exe" & + fi +} + SwitchToDeepinWine() { if [ -d "$WINEPREFIX" ]; then diff --git a/shadow.cpp b/shadow.cpp new file mode 100644 index 000000000000..30ca5bb5540c --- /dev/null +++ b/shadow.cpp @@ -0,0 +1,13 @@ +#include "windows.h" +LPCTSTR windowClassName = L"popupshadow"; +int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) +{ + for (;;){ + HWND h = FindWindowEx(NULL, NULL, windowClassName, NULL); + if (h != NULL) { + ShowWindow(h, SW_HIDE); + } + Sleep(3000); + } + return 0; +}
\ No newline at end of file diff --git a/shadow.exe b/shadow.exe Binary files differnew file mode 100755 index 000000000000..48a299776881 --- /dev/null +++ b/shadow.exe |