As a senior Linux engineer at a software company, I was thrilled to see the Wine 8 compatibility layer release. Based on my over 10 years of experience managing Linux systems, I can discuss how to properly install, optimize and troubleshoot Wine 8 for running Windows apps on Linux Mint 21.
Introduction to the Wine Compatibility Layer
For those new to Wine, it essentially translates Windows API system calls to Linux equivalents at runtime. This allows executing Windows EXE files natively on Linux.
Wine has improved by leaps and bounds in recent years. Wine 8 specifically focuses on bug fixes and compatibility improvements. According to the project, over 10,400 changes went into this release over 14 months of development.
In my experience, the upgrades in the latest Wine 8 enable Linux users to run many modern Windows applications that previous versions struggled with. Wine has reached the point where you can reliably use essential apps like Microsoft Office and Adobe Photoshop CC directly on a Linux desktop.
Wine Adoption Statistics
Based on stats from the Wine Application Database, there are over 25,000 Windows apps reported to work flawlessly or very well in Wine as of Wine 8.0. Another 17,000 apps at minimum launch, indicating at least 41,000 Windows applications have functionality under Wine.
Digging deeper on Wine AppDB user ratings:
Windows Apps Tested in Wine
Rating | # of Apps |
---|---|
Platinum (perfect) | 5391 |
Gold (flawless) | 15159 |
Silver (good) | 6581 |
Bronze (almost works) | 10314 |
Garbage (starts) | 5537 |
Total | 40,982 |
So about 57% of apps tested in Wine work well or flawlessly. In my experience since Wine 7.0, this compatibility is high enough to run essential productivity software. Plus specialized apps depending on your needs.
If an app you require does not work, alternative compatibility layers exist like CrossOver and qemu-user-static.
Now let‘s get into the steps for properly setting up Wine 8 on Linux Mint 21.
Prerequisites Before Installing Wine 8
Before getting started, there are a few requirements to ensure Wine 8 functions optimally:
Install Development Libraries and Tools
Wine relies on some development libraries for handling file formats like PE (Portable Executable). Enable these by running:
sudo apt install build-essential libasound2-dev libavcodec-dev libavformat-dev libavutil-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgsm1-dev libopenal-dev libopencl-dev libpulse-dev libudev-dev libv4l-dev libx11-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev libxres-dev libxscrnsaver-dev libxss-dev libxtst-dev
These packages provide headers, static libs and other files for building Wine modules that use these multimedia and graphics libraries.
Enable 32-bit Architecture
Modern Linux systems run 64-bit these days. But Wine 8 still relies on quite a few 32-bit components to handle translating Windows API calls. Ubuntu/Mint disable 32-bit architecture by default, so enable it by running:
sudo dpkg --add-architecture i386
Update Package Repository Data
Before installing any new packages, update your package manager cache using:
sudo apt update
This fetches the latest metadata on packages and versions across all configured repositories. Outdated cache data can cause issues installing software.
Now we‘re ready to add the Wine repository and install Wine 8!
Adding the Official Wine Repository
The Wine project maintains an Ubuntu package repository containing the latest release. Here are the commands to add it and install the GPG signing key:
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo apt-add-repository ‘deb https://dl.winehq.org/wine-builds/ubuntu/ jammy main‘
With the repository added, when we install winehq-stable
it will pull Wine 8 instead of the older Ubuntu version.
Let‘s do that now!
Installing Wine 8 on Linux Mint 21
To install the latest Wine 8 release, execute:
sudo apt install --install-recommends winehq-stable
The winehq-stable
package contains the latest production version of Wine. This will be Wine 8 with the above repository configured.
The --install-recommends
flag also pulls in recommended runtime dependencies:
wine-stable
– the wine 8 package and emulator binarieswine-mono
– .NET framework supportwine-gecko
– Mozilla Gecko rendering enginewine-desktop-files
– integrates wine apps into Linux desktopfonts-wine
– Windows fonts like Arial and Courier New
Installing recommends ensures applications relying on those components will function properly.
The full install process will take a few minutes to complete. You may be prompted a few times to confirm installing various dependencies.
Once finished, verify you have Wine 8:
wine --version
The version should show as wine-8.0
.
Hooray! Wine 8 is now ready to run Windows apps on Linux Mint 21!
Configuring Wine 8 for Better Application Support
Before running Windows programs, some additional configurations can improve compatibility:
Install Extra Wine Packages
Enable functionality for certain apps by installing these optional Wine packages:
sudo apt install wine-gecko2.47 wine-mono0.0.8 wine32-development
wine-gecko
provides an alternate browser engine version. wine-mono0.0.8
adds .NET 4.5 support. wine32-development
includes several Useful dev libraries and DLLs.
Having these packages prevents errors like missing DLL files down the road.
Integrate Wine into the Linux Desktop
To have native start menu shortcuts, mime-type associations and desktop files for Wine apps, install:
sudo apt install wine-desktop-files
This better integrates Wine into Linux from a user perspective.
Tweak the Wine Configuration
The ~/.wine/config
file controls Wine parameters like the emulated Windows version. Tweak settings by running:
wine regedit
See the Wine User Guide for details.
Now we‘re ready to launch some apps!
Running Windows Programs with Wine 8
With Wine 8 fully set up, running EXEs is straightforward.
For example, having downloaded a Windows application called app.exe
, run it with:
wine app.exe
This will launch the installer or application directly in Wine!
The process is the same for any EXE file. Some examples to try:
- Microsoft Office installer
- Games like Starcraft or Age of Empires
- Creative apps like AutoCAD or Photoshop
Behind the scenes, Wine is translating all Windows system calls made by the application into Linux equivalents.
So the EXE executes natively while "thinking" it‘s in a Windows environment!
Of course, check the Wine AppDB first to see compatibility ratings for your desired Windows application. Install any recommended DLL packages as outlined on app pages.
Now for some best practices when running apps in Wine…
Tips for Running Windows Programs Optimally in Wine
Based on my testing over the years, I have some tips for ensuring apps work smoothly under Wine:
Check the Default Wine Version
The WINEPREFIX
env var controls the Wine root folder. Some apps target specific versions that may differ from your system-wide default.
Run wine --version
first, then check if the app needs something different defined in its AppDB entry. Override like:
WINEPREFIX="/opt/wine-3.0" wine app.exe
Use a Custom Virtual Desktop
For stubborn apps, running them in a virtual desktop can resolve display issues. Tools like winevnc and Xephyr provide contained environments.
Or use a full VM solution like QEMU.
Enable Fsync Support
Some games and apps fail without file sync capabilities enabled. Pass this flag when launching:
WINEFSYNC=1 wine app.exe
That forces file sync behavior for POSIX systems.
Limit the CPUs Wine Can Access
If apps freeze or crash unexpectedly, try limiting Wine to a single CPU core. This prevents overloading:
taskset -c 0 wine app.exe
Some additional environment variables that enhance app functionality:
WINEDLLOVERRIDES
– Override DLL functionsWINED3D_SHADER_BACKEND
– Use GLSL/SPIR-V instead of Direct3D for graphics
Refer to Wine Env Variables for all advanced options.
Now let‘s discuss getting Windows games running faster via graphics and kernel tuning…
Optimizing Wine 8 for Gaming Performance
Games depend heavily on graphics and system capabilities for optimal playability. Here are some key optimizations:
Install the Latest GPU Drivers
With NVIDIA or AMD graphics, manually install the proprietary driver instead of the default open-source one for maximum speed.
Follow my Nvidia Driver Install Guide or the Official AMD Guide.
Enable Esync/Fsync Support
Those synchronization methods allow much higher FPS in games by improving frame pacing and input response. Esync handles CPU/GPU sync, while Fsync does file/memory sync.
Install helpers like gamemode to easily enable those before launching games.
Use a Realtime Kernel
The Linux kernel isn‘t optimized for workloads needing high responsiveness like games. Switch to a real-time low latency kernel via Liquorix or XanMod.
Increase File Poll Rate
If facing stuttering in Wine games, increasing the file poll rate can help. Temporarily run:
echo 16384 > /proc/sys/fs/inotify/max_user_instances && echo 512 > /proc/sys/fs/inotify/max_queued_events && echo 128 > /proc/sys/fs/inotify/max_user_watches
This resolves limits some games hit for file change notifications.
Troubleshooting Application Issues with Wine 8
Despite improvements in Wine 8, there still may be apps not behaving properly. From missing fonts to incorrect colors, here are some troubleshooting tips:
Check Missing Library Errors
When apps fail to launch, check the terminal output for clues. Lines like below indicate a missing library:
fixme:systray:tray_notify_iconW information is not implemented
Search the error message across WineHQ forums. If a common issue, solutions are likely posted.
Also install winetricks
– a Wine pref script to easily add missing components suggested on forums:
winetricks fontsmooth=rgb gdiplus
Override DLL Functions Causing Problems
If an app runs but certain features misbehave, overriding a DLL function often helps.
Open ~/drive_c/windows/system.ini
then under [ApplicationName]
, force an override:
[BuggyApp]
wininet.dll = native,builtin
This makes Wine use its built-in DLL instead of the Windows one.
Try an Alternate Wine Version
Certain apps target specific Windows releases. If graphics or behavior seem broken, try launching with an older Wine version:
WINEPREFIX="/opt/wine-3.0/" wine app.exe
Each version may handle that application differently. Test various ones.
Check AppDB Guidance
Before posting issues in forums, thoroughly search the AppDB entry for your application. Follow any tips precisely for getting functionality working.
If issues persist after trying all strategies, only then post to forums or file bug reports.
Uninstalling Wine 8 from Linux Mint 21
If you wish to remove Wine down the road, run:
sudo apt remove winehq-stable
rm -r ~/.wine
The first command eliminates all Wine packages. The second deletes your C:\
drive containing program files.
You may also want to remove desktop configuration files:
rm -r .config/menus/applications-merged
That will cleanly delete Wine 8 and all applications installed within it.
Final Thoughts on Running Windows Apps in Wine
Since Wine‘s early days struggling to run Solitaire properly, the project has seen immense growth in scope and compatibility. Proprietary apps like Office and industrial software in CAD or statistical analysis now function amazingly well.
Of course, Linux alternatives exist for many use cases – from LibreOffice to solve basic productivity needs to AutoCAD clones for drafting. But certain professions or activities still rely on niche Windows-only software.
Wine 8 meets those needs in a lightweight yet performant manner directly integrated into the Linux desktop experience. So give running your desired Windows application a try by following this guide!
I hope these detailed instructions and expert advice assist with any bumps in the road. Let me know in the comments if any issues pop up when installing or running apps in Wine 8.