Linux Compatibility Guide
If you are new to Linux, seeing terms like Wine, Bottles, or Soda can be confusing. This guide explains how to run Windows applications on Linux and what these terms mean.
Introduction: How do Windows apps run on Linux?
Linux is a completely different operating system from Windows. By default, Windows programs (files ending in .exe or .msi) cannot run on Linux because they speak a different "system language."
To solve this, the Linux community has built compatibility layers. These layers act as real-time translators, translating Windows system instructions into Linux instructions on the fly. This means software runs with close-to-native performance, without the slowdowns of running a full virtual machine.
Software Sources & Package Manager Configurator
Linux installs software from official repositories through graphical software stores or terminal commands. Choose your Linux Distribution and Desktop Environment below to find out where to search for software, what commands to run, and where to find official documentation.
Native Apps
Native means the application was built specifically to run on Linux. It requires no translation layers or special configurations.
Wine (Wine Is Not an Emulator)
Wine is the foundational open-source translation layer that allows Windows software to run on Linux. Almost every other runner or manager in the Linux ecosystem is built on top of Wine.
Wine intercepts Windows API requests and translates them into Linux system calls. Since it is not a virtual machine, applications run at full speed.
Bottles
Bottles is a modern, graphical application that makes managing Wine environments incredibly simple.
Instead of having all your Windows programs share a single Wine environment (which can cause them to conflict and break each other), Bottles lets you create isolated environments called "bottles." You can have a bottle for office software, a bottle for gaming, and another for music production, each with its own settings and dependencies.
How to install: Bottles is best installed via Flatpak from Flathub. It is the easiest and most stable way to run it on any Linux distribution.
Soda Runner (Bottles)
In Bottles, a "runner" is the engine that executes your Windows programs. Soda is the default runner created and maintained by the Bottles team.
Soda is a custom Wine build specifically tuned to run standard productivity, office, and creative desktop software (like Photoshop or MS Office). It includes special patches to ensure maximum stability for non-gaming applications.
Caffe Runner (Bottles)
Caffe is another runner developed by the Bottles team, but unlike Soda, it is specifically optimized for **gaming**.
Caffe includes experimental patches, low-latency improvements, and compatibility libraries designed to run heavy 3D Windows games with the highest frame rates possible on Linux.
Lutris
Lutris is an open-source game manager for Linux. It helps you install and manage games from GOG, Steam, Epic Games, Origin, Ubisoft Connect, and local files in one place.
Lutris automates the installation process by using community-written scripts. When you install a game, Lutris automatically downloads the recommended Wine version, installs required libraries, and applies performance tweaks.
Proton, GE-Proton, & Wine-GE
Proton is a translation layer developed by Valve (makers of Steam) based on Wine. It is specifically designed to run Windows games on Linux through Steam (and is the power behind the Steam Deck). It is highly optimized for performance and handles complex graphics APIs (DirectX 11/12) flawlessly.
GE-Proton (by GloriousEggroll) is a community-modified version of Proton that includes extra video codecs, upstream Wine patches, and game-specific hotfixes. It is widely used in Lutris, Heroic, and Steam to fix games that struggle on official Proton.
Wine-GE is similar to GE-Proton, but is specifically structured to run outside of Steam (e.g. inside Lutris or Heroic Games Launcher).
Heroic Games Launcher
Heroic Games Launcher is an open-source, native Linux client that replaces the official Epic Games Launcher, GOG Galaxy, and Amazon Games.
Instead of running the heavy, resource-intensive Windows clients, Heroic lets you download and play your library natively, while letting you select the runner (like Wine-GE or Proton) to execute the games.
CrossOver
CrossOver is a commercial, paid wrapper for Wine developed by CodeWeavers. CodeWeavers employs many of the lead developers of the open-source Wine project.
CrossOver offers a highly polished, user-friendly interface and official customer support. If you need to run specific enterprise Windows software (like Microsoft Office or legacy database systems) in a professional environment, CrossOver is the go-to solution. Purchasing CrossOver directly funds the development of the open-source Wine project.