syn-wine is a pacman package (not a Cargo crate) built from upstream Wine 11.19 with synshell patches. One PKGBUILD and one set of patches serve both x86_64 and aarch64; ARM-only parts sit under $CARCH in the PKGBUILD and #ifdef __aarch64__ in the patches. It replaces wine, wine-mono and wine-gecko (provides/conflicts) and the former phone package wine-arm64ec.
Features
- Touch — Wayland and X11 touches reach Windows programs, including DirectInput.
- Steam API bridge from Proton —
lsteamclientandsteam.exefrom a pinned Proton commit: games that callsteam_apistart under this Wine with the Linux Steam client. - Steam compatibility tool “syn-wine” —
/usr/share/steam/compatibilitytools.d/syn-wine: Windows games from the Steam library run on this Wine without Proton. Each game gets its own prefix next to its Steam data, DXVK is installed on the first start, and with the synshell compositor a game can get its own screen resolution ([[x11_app]], “System Settings → Session → X11 programs”). - Missing components — when a program lacks a DLL (MFC, Visual Basic runtimes, OpenAL…) or a GStreamer codec, Wine calls syn-wine-helper: a window offers to install it once for all prefixes and starts the program again.
- DXVK — Direct3D 8–11 over Vulkan;
setup-dxvk install|uninstallputs it into a prefix (x64 + x32 on x86_64, ARM64EC + x32 on aarch64). - Wine Mono 11.3.0 and Wine Gecko 2.47.4 in the package — unpacked into
/usr/share/wine/{mono,gecko}, shared by all prefixes, so a new prefix does not ask to download them. Mono is x86 on x86_64 and arm64 on aarch64; Gecko is x86 and x86_64 on both (used by x86 programs through WoW64/FEX and by x86_64 programs through ARM64EC). - Fixes — EmulateModeset under Xwayland (a game renders in its own mode, Wine scales it to the screen), swapchain, DPI, Media Foundation and window frame fixes;
.exefiles start through binfmt, Win32 font aliases for fontconfig. - DLSS 5 — Wine sets
VKLayer_DLSS5=1for its programs when “syn-wine games” is switched on in syn-dlss (packagesyn-wine-dlss5).
aarch64 (phones)
- ARM64EC and WoW64 — native ARM64 code with x86_64 emulated inside Wine by FEX (
libarm64ecfex.dll) and 32-bit x86 by FEX (libwow64fex.dll, own build with fixes for division by zero,POPfaults and debug registers) or Box64 — DLLs from Hangover; no x86-64 RootFS. - x86 emulator per program —
HKCU\Software\Wine\AppDefaults\<name.exe>\Wow64: valuex86picks the emulator DLL, subkeyEnvironmentsets its environment (e.g.FEX_TSOENABLED=0) before it starts. Heroes of Might and Magic III runs on FEX without TSO out of the box: Box64 deadlocks when the Miles sound thread suspends the game thread, and default FEX mixes sound so slowly the game stutters. - OpenGL below 3.2 (Adreno 504 / freedreno): the framebuffer GL surface uses
glFramebufferTexture2D— DirectDraw/Direct3D games are no longer black. - Own DXVK ARM64EC build (DXVK 3.1.1, with shared resources through D3DKMT).
- Phone adjustments — DPI 180 for new prefixes, then taken from
Xft.dpiof the game's X server; workarounds for the 39-bit address space of Android kernels and the rpcrt4 delay-load; the Wayland driver when Turnip lacks X11 WSI (SYN_WINE_WAYLAND=1forces it).
Install
syn-wine is not published to AUR; it is built from this directory.
cd crates/syn-wine
makepkg -si # computer (x86_64)
Phone: synport hostpkg syn-wine (cross-build on the host, synmobile) or makepkg on the phone. For aarch64 the build directory needs dxvk-<version>-arm64ec.tar.gz (build-dxvk-arm64ec.sh) and libwow64fex-<commit>.dll (build-fex-wow64.sh) — both are built on an x86_64 host with llvm-mingw.
Optional: synshell (syn-wine-helper — missing DLLs), ntsync-autoload (NTSync), samba (NTLM).
Usage
wine setup.exe # as usual Wine
setup-dxvk install # DXVK into $WINEPREFIX (default ~/.wine)
setup-dxvk uninstall
In Steam: a game's “Properties → Compatibility → Force a specific Steam Play compatibility tool” → “Wine synshell (системный)”. The tool's log is syn-wine.log in the game's compatdata folder. Steam itself is the syn-steam package.
DLSS 5 (dlss5/)
A fork of DLSS5VKLayer (from commit ab722b0): DLSS 5 Neural Rendering for Linux games and Wine/Proton games on NVIDIA. The Vulkan layer VK_LAYER_NV_dlssnr (64 and 32 bit) hands frames to dlssnr_helper.exe, which loads NGX and the model under syn-wine. It is a separate package, syn-wine-dlss5 (cd dlss5/packaging && makepkg -si), with the syn-dlss window.
Part of synshell
syn-wine is part of synshell — a Wayland desktop environment in Rust for computers and phones, built on the syngui UI framework.
License
Wine — LGPL-2.1-or-later; DXVK — Zlib.