Deepin 打包的微信容器( com.qq.weixin.deepin
)移植到Archlinux,包含定制的運行腳本,微信安裝包替換為官方最新
deepin-wine-wechat
從v3.5.0.46-2
開始,預設使用AUR 倉庫deepin-wine6-stable,不再依賴wine
,可以進行一些清理操作來保持系統整潔,具體參考: 從wine
/ deepin-wine 2.x
遷移
deepin-wine
wine
/ deepin-wine 2.x
遷移deepin-wine-wechat
依賴Multilib
倉庫中的一些32 位元庫,Archlinux 預設沒有開啟Multilib
倉庫,需要編輯/etc/pacman.conf
,取消對應行前面的註解並更新本地資料庫(Archlinux wiki):
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
# [multilib-testing]
# Include = /etc/pacman.d/mirrorlist
- #[multilib]
- #Include = /etc/pacman.d/mirrorlist
+ [multilib]
+ Include = /etc/pacman.d/mirrorlist
儲存後執行
sudo pacman -Sy
wine
還沒有實現的一些win api,這會導致一些功能不可用,安裝前先根據相容性記錄選擇合適的版本
以下三種安裝方式效果相同,選擇一種即可
已加入AUR deepin-wine-wechat,可使用yay
或yaourt
安裝:
yay -S deepin-wine-wechat
由GitHub Action 在Docker 容器countstarlight/makepkg 中自動建置的ArchLinux 安裝包
在GitHub Release 頁面下載後綴為.pkg.tar.xz
或.pkg.tar.zst
的安裝包,使用pacman
安裝:
sudo pacman -U #下载的包名
.md5
檔案用於校驗套件完整性:
md5sum -c * .md5
git clone https://github.com/vufa/deepin-wine-wechat-arch.git
cd deepin-wine-wechat-arch
makepkg -si
用上述三種安裝方式之一安裝完成後,執行應用程式選單中建立的WeChat 快捷方式,首次運行會以WeChat 的安裝包進行安裝
deepin-wine-wechat
的啟動腳本( /opt/apps/com.qq.weixin.deepin/files/run.sh
):
EXEC_PATH= " c:/Program Files/Tencent/WeChat/WeChat.exe "
改為修改後的安裝路徑,否則只有安裝後第一次能夠運行
设置
裡關閉微信的自动更新
,微信啟動時會檢查更新並載入自動更新程序,由於預設屏蔽了微信的自動更新程序,會導致找不到更新程序而不能啟動
dpi,系統版本,目錄映射等可以在winecfg
進行設置,開啟winecfg
的命令為:
/opt/apps/com.qq.weixin.deepin/files/run.sh winecfg
微信版本 | wine | 相容性 | 備註 | deepin-wine | 相容性 | 備註 |
---|---|---|---|---|---|---|
3.9.0.28-2~ | 6.0.0.42-1 | 部分 | 截圖不可用,內建瀏覽器出現問題(#225) | |||
3.8.0.41~3.8.1.26 | 6.0.0.39-1 | 部分 | 截圖不可用,內建瀏覽器出現問題(#225) | |||
3.7.0.30~3.7.6.44 | 6.0.0.24-1 | 部分 | 截圖和表情包不可用,內建瀏覽器出現問題(#225) | |||
3.5.0.46~3.7.0.30 | 6.0.0.24-1 | 部分 | 小程式和公眾號可用,截圖(#192)和表情包不可用(#177) | |||
3.3.0.93~3.5.0.46 | 5.0.16-1 | 支援 | ||||
3.2.1.141~3.2.1.154 | 6.6 | 截圖功能不可用:#87 | 5.0.16-1 | 支援 | ||
3.2.1.127 | 6.5 | 部分 | 群聊閃退&截圖功能不可用:#87 | 5.0.16-1 | 支援 | |
3.1.0.41~3.1.0.72 | 5.22~6.0 | 部分 | 截圖功能不可用:#73 | 5.0.16-1 | 支援 | |
3.0.0.57 | 5.22 | 不支援 | 微信安裝程式不能啟動:#92 | 5.0.16-1 | 支援 | |
3.0.0.57 | 5.19 | 支援 | 2.18_24-3 | 支援 | ||
2.8.0.106~2.9.5.56 | 4.19~5.13 | 部分 | 傳送圖片有問題: #42 | 2.18_22-3 | 部分 | 傳送圖片有問題: #42 |
2.7.1.82~2.7.1.88 | 4.19+ | 支援 | ||||
2.7.1.82~2.7.1.88 | 4.17~4.18 | 部分 | 不能使用中文輸入法 | 2.18_18-2 | 不支援 | 閃退 |
2.6.8.65 | 4.16 | 支援 | 2.18_18-2 | 支援 |
deepin-wine
deepin-wine-wechat
從v3.5.0.46-2
開始,預設使用AUR 倉庫deepin-wine6-stable,無需再進行任何切換操作,對於先前的版本,可以查看舊版README。
對於先前的版本,可以查看舊版README。
wine
/ deepin-wine 2.x
遷移更新到deepin-wine-wechat v3.5.0.46-2
及以後的版本後,依賴變更為deepin-wine6-stable
,
如果此時沒有其他應用在使用wine
, deepin-wine 2.x
和deepin-wine5
,就可以放心的卸載wine
, deepin-wine 2.x
和deepin-wine5
及其依賴:
# 卸载 deepin-wine 2.x (如果有)
sudo pacman -S lib32-freetype2 #用原版替换lib32-freetype2-infinality-ultimate
sudo pacman -Rns deepin-wine xsettingsd # 卸载 deepin-wine 2.x
# 卸载 deepin-wine5 (如果有)
sudo pacman -Rns deepin-wine5
# 卸载 wine (如果有)
sudo pacman -Rns wine wine-mono wine-gecko
同時,由於deepin 的打包不再包含deepin-wine-helper
,現改為使用AUR 倉庫deepin-wine-helper,可以刪除先前的deepin-wine-helper
:
rm -rf $HOME /.deepinwine/deepin-wine-helper
無論用何種方式安裝,卸載都是:
sudo pacman -Rns deepin-wine-wechat
卸載的同時會刪除使用者目錄下的整個WINEPREFIX
環境,路徑為: ~/.deepinwine/Deepin-WeChat
微信在本地保存的資料不會被刪除,例如保存在使用者文件下的資料(預設: ~/Documents/WeChat Files
)
deepin-wine-wechat
的$HOME/.deepinwine/Deepin-WeChat/drive_c/windows/Fonts
Fonts
經測試將微软雅黑
偽裝成宋体(simsun)
的顯示效果最好,具體可以參考bbs.deepin.org,將fake_simsun.ttc
放到字體資料夾
參考deepin-wine-wechat-arch#186
可以安裝deepin-wine-wechat
的可選依賴noto-fonts-sc(只包含noto-fonts-cjk
中的簡體中文字體):
yay -S noto-fonts-sc
或安裝noto-fonts-cjk
並參考ArchWiki進行配置
對於先前的版本,可以查看舊版README。
參考設定開啟winecfg
,在選項卡Graphics
中修改dpi,如修改為192
這項修改會在更新或重裝後被重置,如果要在更新後保留dpi 設置,可以添加環境變量
根據deepin-wine-wechat-arch#173,由abcfy2提供的方法
編輯/etc/environment
,新增:
DEEPIN_WINE_SCALE=1.25
1.25
為縮放比例,計算方法及其他注意事項參考deepin-wine-wechat-arch#173(comment)
安裝GNOME 插件: AppIndicator and KStatusNotifierItem Support
對於先前的版本,可以查看舊版README。
運行命令:
/opt/apps/com.qq.weixin.deepin/files/run.sh -w
可以參考deepin-wine-wechat-arch#96 和deepin-wine-wechat-arch#263 將該指令存入腳本並加入到全域快捷鍵中,方便使用
thep0y 提供
點擊圖示時如果已有正在執行的實例會導致錯誤的kill,原因是/opt/deepinwine/tools/kill.sh
中:
get_tray_window ()
{
# get_tray_window 是一个基于 python2 写的脚本,
# python2 已是被扔进历史垃圾堆的产物,这个垃圾在
# debian 10 中是关键组件,但在 Archlinux 中却
# 没有必要再安装这个垃圾。
$SHELL_DIR /get_tray_window | grep window_id: | awk -F: ' {print $2} '
}
我們需要安裝一個依賴:
sudo pacman -S dbus-python
再將腳本/opt/deepinwine/tools/get_tray_window
內容修改成下列程式碼:
#!/usr/bin/env python
def get_tray_window ():
try :
import dbus
except ImportError :
return False
bus = dbus . SessionBus ()
traymanager = bus . get_object ( "com.deepin.dde.TrayManager" , "/com/deepin/dde/TrayManager" )
windows = traymanager . Get ( "com.deepin.dde.TrayManager" , "TrayIcons" )
str = "window_id:"
for i in range ( len ( windows )):
str += '{:#x} ' . format ( windows [ i ])
print ( str )
if __name__ == "__main__" :
get_tray_window ()
儲存退出後,點選圖示就不會再退出原實例,而是會召喚出原實例視窗了。